Az SSH (Secure Shell) hálózati protokoll, amely titkosított kapcsolatot hoz létre két számítógép között, így egy nem megbízható hálózaton, például az interneten keresztül is biztonságosan vezérelhet egy távoli gépet. Az SSH-kapcsolaton parancsokat futtathat, fájlokat másolhat, és más hálózati forgalmat is átvezethet. A régi, titkosítatlan protokollokat (telnet, rsh) teljesen felváltotta: a Linux szerverek távoli kezelése ma szinte kizárólag SSH-n történik.
Linuxon a legelterjedtebb megvalósítás az OpenSSH. A szerveren az sshd szolgáltatás fogad kapcsolatokat, alapértelmezetten a 22-es TCP-porton, a kliens pedig az ssh parancs, amely Linuxon, macOS-en és a Windows 10-es és újabb verzióin is beépítve elérhető.
Hogyan működik?
- A szerver azonosítása. Csatlakozáskor a szerver bemutatja a saját nyilvános kulcsát (host key). Az első kapcsolódáskor a kliens megmutatja ennek ujjlenyomatát, és rákérdez, hogy megbízik-e benne. Elfogadás után a kulcs a
~/.ssh/known_hostsfájlba kerül, és a kliens minden későbbi kapcsolódáskor ellenőrzi. - Titkosított csatorna. A két fél kulcscserével közös, csak erre a kapcsolatra érvényes kulcsot hoz létre, és innentől minden adat titkosítva halad.
- A felhasználó azonosítása. Ez történhet jelszóval vagy kulcspárral. A kulcsos azonosításnál a privát kulcs soha nem hagyja el az Ön gépét, a szerver csak a nyilvános kulcsot ismeri, ezért ez a biztonságosabb módszer.
Csatlakozás egy szerverhez
Nyisson meg egy terminált vagy parancssort a saját gépén, és írja be:
ssh felhasznalo@szervercime
A felhasznalo helyére a szerver felhasználónevét (VPS esetén az első belépéskor általában root), a szervercime helyére a szerver IP-címét vagy hosztnevét írja. Ha az SSH nem a 22-es porton fut, a portot a -p kapcsolóval adja meg: ssh -p 2222 felhasznalo@szervercime. Az első kapcsolódáskor írja be a yes szót a szerver kulcsának elfogadásához, majd adja meg a jelszót. Kilépni az exit paranccsal vagy a Ctrl+D billentyűkombinációval lehet.
A KVM VPS-ünkhöz való első csatlakozást Windows, macOS és Linux alól a VPS-ek SSH-csatlakozási útmutatója mutatja be lépésről lépésre.
Kulcsos bejelentkezés beállítása
ssh-keygen -t ed25519
ssh-copy-id felhasznalo@szervercime
Az első parancs a saját gépén kulcspárt hoz létre (alapértelmezetten a ~/.ssh/id_ed25519 és az id_ed25519.pub fájlba), a második a nyilvános kulcsot a szerver ~/.ssh/authorized_keys fájljába másolja. Ezután jelszó nélkül, a kulccsal léphet be. A privát kulcsot védje jelmondattal, és soha ne ossza meg senkivel.
Mire használható még?
- Fájlmásolás: az
scp, azsftpés azrsyncis SSH-n keresztül visz át fájlokat, lásd: fájlok másolása szerverek között. - Alagutak (tunneling): egy szerveren csak helyben elérhető szolgáltatás, például egy adatbázis, biztonságosan elérhető a saját gépéről, vagy a szerver SOCKS proxyként is használható.
- Kényelmi beállítások: a
~/.ssh/configfájlban rövid nevet adhat a szervereinek a felhasználónévvel, a porttal és a kulccsal együtt.
Gyakori hibaüzenetek
Connection refused: a szerveren nem fut az SSH-szolgáltatás, vagy más porton figyel.Connection timed out: tűzfal blokkolja a portot, vagy hibás a cím.Permission denied (publickey): a szerver csak kulcsos belépést enged, és nem találja a megfelelő kulcsot.REMOTE HOST IDENTIFICATION HAS CHANGED: a szerver kulcsa megváltozott, például újratelepítés után. Ha biztos benne, hogy ez az oka, törölje a régi bejegyzést azssh-keygen -R szervercimeparanccsal; ha nem, ne csatlakozzon, mert a kapcsolatot valaki eltérítheti.
Az SSH-szerver védelméről (kulcsos belépés kötelezővé tétele, root belépés korlátozása) az SSH szerver biztonsági beállításai cikk szól.