ssh-copy-id – autologowanie się do serwera

Logowanie się na serwer za pomocą klucza ssh jest piękne. Pierwszy raz, gdy poznałam tę metodę nie mogłam uwierzyć, że jest to takie proste. Adminom daje to możliwość nadawania i usuwania dostępów do serwera a mnie??? No cóż… jak by to rzec… WYGODĘ!

I to przez wielkie „W”!

Niestety nie na każdym hostingu, jak mi się wstępnie wydawało, mogłam z tego korzystać. Pewnego dnia nawet „oburczałam” mojego prywatnego admina 😉 , że skoro w pracy mogę z tego korzystać, to i w domu chcę – wszak do dobrego szybko się można przyzwyczaić.

Jakie było moje zdziwienie, gdy okazało się, że mogę z tego używać bez specjalnych ustawień po stronie serwera – wystarczyło wpisać poniższe polecenie:

ssh-copy-id user@example.com

a następnie wprowadzić hasło.

Przy kolejnych połączeniach z serwerem, poniższe polecenie nie wymagało już wprowadzania hasła:

ssh user@example.com

Jeżeli nie mamy jednak wygenerowanych kluczy, prywatnego i publicznego, przed powyższym poleceniem należy wykonać:

ssh-keygen

w przeciwnym razie wcześniejsze polecenie zwróci błąd, z informację że nie może skopiować kluczy.

Prawda, że proste? Ale jak to działa? 🙂

Otóż polecenie ssh-copy-id wykorzystuje protokół ssh, do połączenia się ze zdalnym hostem by zapisać nasz klucz publiczny w pliku:

~/.ssh/authorized_keys

Jeśli katalog .ssh nie istnieje, polecenie utworzy go wraz z plikiem.

Dzięki temu możemy się zalogować za pomocą mixu klucza prywatnego, który jest w naszym katalogu .ssh i klucza publicznego, który jest u nas i na serwerze i magii, która dzieje się po drodze 😉 ale to już temat dla pasjonatów kryptografii.