Ugrás a tartalomra

HOSTING Frissítve: #27

SSH kulcs generálása és kulcsos belépés shared hostingra

Saját gép → tárhely kapcsolat kulccsal: publikus kulcs az authorized_keys-be (terminálból vagy FTP-n), helyi SSH config, belépés az sshx indítóval. PuTTY helyett ssh/sshx – a régi PuTTY is okozhat csatlakozási hibát.

Röviden Hivatkozás erre a szakaszra

  • A privát kulcs csak a saját gépeden van. A publikus kulcs (.pub) a tárhelyen, a ~/.ssh/authorized_keys fájlban.
  • Hostonként egy kulcs elég. Minden host a helyi ~/.ssh/config fájlban van felvéve. Ebből dolgozik az ssh, a git, a /ship és az sshx indító is.
  • PuTTY-t már nem használunk. Elég a gépre telepített OpenSSH és az sshx.

1. Kulcs generálása (helyben) Hivatkozás erre a szakaszra

Windows alatt cmd-ből (PowerShellben %USERPROFILE% helyett $env:USERPROFILE):

Bash
ssh-keygen -t ed25519 -C "gepnev-tarhely" -f %USERPROFILE%\.ssh\tarhely

Jelszó nélkülihez kétszer Enter, vagy adj meg jelszót, és használd az ssh-agent-et. Két fájl keletkezik: tarhely (privát) és tarhely.pub (publikus).

Elveszett a .pub fájl? A privát kulcsból visszaállítható (cmd-ben futtasd, mert a PowerShell 5.1 UTF-16 kódolással mentené, és a kulcs használhatatlan lenne):

Bash
ssh-keygen -y -f %USERPROFILE%\.ssh\tarhely > %USERPROFILE%\.ssh\tarhely.pub

2. Publikus kulcs a szerverre Hivatkozás erre a szakaszra

Sok shared hostingon nincs cPanel „SSH Access” menü. Ilyenkor kétféleképpen teheted fel a kulcsot.

a) Terminálból (ha van már működő belépés, pl. a tárhely webes termináljával):

Bash
mkdir -p ~/.ssh
echo 'ssh-ed25519 AAAA... gepnev-tarhely' >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

b) FTP-n: a /home/USER/.ssh/authorized_keys fájlba kerüljön a .pub tartalma, egy sorba.

  • A fájlnak nincs kiterjesztése.
  • A sorvég Unix (LF) legyen.
  • Jogosultságok: a .ssh mappa 700, a fájl 600. Tágabb jogosultság mellett a szerver nem fogadja el a kulcsot.

Ha a tárhelyen van cPanel SSH Access menü: SSH Access → Manage SSH Keys → Import, majd Authorize.

3. Helyi SSH config Hivatkozás erre a szakaszra

%USERPROFILE%\.ssh\config:

SSHCONFIG
Host tarhely
    HostName example.com
    Port 22
    User USER
    IdentityFile ~/.ssh/tarhely
    IdentitiesOnly yes

A Host sorba rövid alias kerüljön, @ és : nélkül. Ezután: ssh tarhely, vagy válaszd ki az sshx-ben.

4. Csatlakozás az sshx-szel Hivatkozás erre a szakaszra

Az sshx saját indító, cmd-ből és PowerShellből is indul: sshx. ASCII-táblázatban mutatja a configban felvett hostokat.

  • ↑ ↓ / PgUp PgDn / Home End: mozgás
  • Enter: belépés (ssh <alias>), kilépés után visszajön a menü
  • gépelés: szűrés, Backspace: a szűrő javítása
  • F5: a config újraolvasása (új host után)
  • F1 vagy ?: angol nyelvű súgó (új host, kulcscsere, szerverkulcs-csere)
  • Esc: a szűrő törlése, üres szűrőnél kilépés

5. Ha megváltozott a szerver kulcsa Hivatkozás erre a szakaszra

Tünet: REMOTE HOST IDENTIFICATION HAS CHANGED! / Host key verification failed. Kulcscsere vagy szerverköltözés után fordul elő.

  1. Kérd el a szolgáltatótól az új lenyomatot, és vesd össze az ssh által kiírt SHA256:... értékkel. Ha nem egyezik, ne lépj tovább.
  2. Töröld a régi bejegyzést: ssh-keygen -R example.com
  3. Csatlakozz egyszer (ssh tarhely vagy sshx), és fogadd el az új kulcsot: yes.
  4. Ha ezután Permission denied (publickey) jön, a szerverről a te kulcsod is lekerült. Tedd vissza a 2. pont szerint.

6. Saját kulcs cseréje Hivatkozás erre a szakaszra

  1. Generálj új kulcsot (1. pont).
  2. Tedd fel az új .pub-ot a szerverre (2. pont), amíg a régi még működik.
  3. A configban írd át az IdentityFile-t az új kulcsra.
  4. Próbáld ki (sshx → F5 → Enter). Ha működik, töröld a régi sort az authorized_keys-ből és a régi kulcsfájlokat a gépedről.

Hibakeresés Hivatkozás erre a szakaszra

  • Régi PuTTY-kliens: a 0.75 előtti PuTTY RSA-kulcsnál csak az elavult SHA-1 (ssh-rsa) aláírást ismeri. Frissített szerveren ezért akkor is elutasítja a belépést, ha a kulcs rendben fent van, miközben a sima ssh működik. A régi PuTTY a lenyomatot is MD5-ben mutatja. Megoldás: ne PuTTY-t használj, hanem ssh-t / sshx-et.
  • ssh -v tarhely: részletes napló arról, melyik kulcsot ajánlja fel és mit utasít el a szerver.
  • UNPROTECTED PRIVATE KEY FILE: más felhasználó is olvashatja a kulcsfájlt. Javítás: icacls <kulcs> /inheritance:r /grant:r %USERNAME%:R
  • Rossz felhasználó vagy port: ellenőrizd a config User és Port sorát.

A privát kulcsot soha ne másold a projektbe, dokumentumba vagy chatbe. Ha mégis kiszivárgott, töröld az authorized_keys-ből, és generálj újat.