SSH přihlášení bez hesla? I to je možné.

Přihlašování se k serverům pomocí SSH je běžná věc co si budeme povídat, každý IT to používá dennodenně a k některému serveru se hlásíte tak často že stále zadávání hesla je už dost otravné. Aby nebylo třeba heslo stále zadávat, můžeme využít autentizaci pomocí ssh klíče.

Na lokálním serveru/počítači si klíč vygenerujeme (většinou už máme a můžeme jít dál)

ssh-keygen -t dsa

při vytváření klíče lze zadat i bezpečnostní heslo, ale to by trochu postrádalo smysl k automatickému přihlášení, takže tohle probírat dál nebudu.
V adresáři “.ssh” jsou dva soubory – id_dsa a id_dsa.pub – osobní a veřejný klíč.
Vygenerovaný veřejný klíč nahrajeme na server, ke kterému se chceme bez zadávání hesla připojovat

cd .ssh
scp id_dsa.pub root@server:/root/

Připojíme se na sevrer. Klíč je třeba přidat na konec stávajícího souboru, abychom nezrušili již používané klíče. Často se stává že soubor authorized_keys vůbec v adresáři .ssh/ neexistuje, nic se neděje příkaz níže ho vytvoří.

ssh root@server
cat id_dsa.pub >> .ssh/authorized_keys

Smažeme na serveru id_dsa.pub a můžeme se z něj odhlásit.

rm -f id_dsa.pub
exit

Standardně je přihlašování pomocí klíčů v SSH demonovi povolené, i když někdy ne Pak stačí překontrolovat na serveru, zda není v konfiguračním souboru používání klíčů zakázáno.

vi /etc/ssh/sshd_config

a najdeme a odkomentujeme (smazat znak “#”) /přidáme řádek PubkeyAuthentication na PubkeyAuthentication yes
dále odkomentujeme (smazat znak “#”) cestu k souboru s klíči AuthorizedKeysFile .ssh/authorized_keys
Takže ve výsledku bude upravený soubor vypadat takto

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Dále se mohou specifikovat pro větší bezpečnost konkrétní ssh uživatelé, kteří se mohou k severu připojit pomocí ssh klíče:

DenyUsers *
AllowedUsers root user1 user2

Pak je ještě třeba ssh démona restartovat.

/etc/init.d/sshd restart

Pro přihlášení k serveru bude tedy stačit už jen zápis

ssh root@server

a jsme tam.