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.