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_keysfájlban. - Hostonként egy kulcs elég. Minden host a helyi
~/.ssh/configfájlban van felvéve. Ebből dolgozik azssh, agit, 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):
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):
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):
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
.sshmappa700, a fájl600. 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:
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ő.
- Kérd el a szolgáltatótól az új lenyomatot, és vesd össze az
ssháltal kiírtSHA256:...értékkel. Ha nem egyezik, ne lépj tovább. - Töröld a régi bejegyzést:
ssh-keygen -R example.com - Csatlakozz egyszer (
ssh tarhelyvagysshx), és fogadd el az új kulcsot:yes. - 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
- Generálj új kulcsot (1. pont).
- Tedd fel az új
.pub-ot a szerverre (2. pont), amíg a régi még működik. - A configban írd át az
IdentityFile-t az új kulcsra. - Próbáld ki (
sshx→ F5 → Enter). Ha működik, töröld a régi sort azauthorized_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 simasshműködik. A régi PuTTY a lenyomatot is MD5-ben mutatja. Megoldás: ne PuTTY-t használj, hanemssh-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ésPortsorá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.