Logowanie SSH bez hasła
Chciałbym logować się na zdalne serwery przy użyciu protokołu SSH bez potrzeby wpisywania hasła. Dodatkowo chciałbym wykonywać w ten sposób polecenia wymagające uprawnień administratora. Korzystam z systemu Linux. Czy jest to możliwe?
1. Generujemy klucz publiczny / prywatny wykonując polecenie ssh-keygen.
Linux#ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
67:00:86:00:64:00:53:00:d7:00:40:00:b9:00:85:00 root@linux
Polecenie ssh-keygen wygenerowało dwa pliki. Pierwszy o nazwie "id_rsa" zawiera klucz prywatny, który nie może być nikomu udostępniany. Drugi o nazwie "id_rsa.pub" zawiera klucz publiczny, który wysyłamy na dowolny serwer z którym zamierzamy ustanowić połączenie.
2. Na tym etapie wykorzystamy możliwość przesyłania plików na zdalne serwery przy wykorzystaniu polecenia SCP. Ten krok nadal wymaga podania hasła.
Linux#scp /root/.ssh/id_rsa.pub root@zdalny_host:~/id_rsa.pub
Warning: Permanently added 'zdalny_host' (RSA) to the list of known hosts.
root@zdalny_host's password:
id_rsa.pub 100% 391 0.4KB/s 00:00
Na zdalny serwer do katalogu domowego użytkownika root został skopiowany plik id_rsa.pub zawierający wygenerowany klucz publiczny.
3. Logujemy się na zdalny serwer przez wykonanie polecenia:
Linux#ssh root@zdalny_host
Podajemy hasło i zakładamy na zdalnym serwerze katalog:
zdalny_host#mkdir /root/.ssh
Prawa dostępu do tego katalogu powinny zostać ustawione na 700.
Następnie dodajemy wygenerowany klucz do autoryzowanych na danym serwerze:
zdalny_host:~# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
Od tej pory mamy możliwość logowania się bez hasła do zdalnego serwera.
Za pomocą SSH można przeprowadzić kilka innych interesujących operacji. Podstawową operacją jest zdalny i szyfrowany dostęp do serwerów. SSH jest także często wykorzystywane do przesyłania plików na zdalny serwer:
Linux#scp lokalny_plik zdalny_serwer:/katalog/
Przedstawione polecenie kopiuje lokalny plik do określonego katalogu na zdalnym serwerze.
Istnieje także możliwość transmisji w drugą stronę:
Linux#scp -r zdalny_serwer:/katalog/plik /lokalny_katalog/
Przedstawione polecenie kopiuje plik na zdalnym serwerze do określonego katalogu na lokalnym serwerze.
Niezwykle ciekawą opcją jest możliwość zdalnego wykonywania poleceń:
Linux#ssh nazwa_serwera "polecenie"
Dzięki podobnej składni jesteśmy w stanie w bezpieczny sposób wykonać polecenie na zdalnym serwerze z uprawnieniami dowolnego użytkownika. Przedstawiony proces umożliwi wykonywanie poleceń bez potrzeby podawania hasła.
Polecamy: Vsys - następca SUDO?
Komentarze (10)
Fajnie, tylko czemu wszystko na roota? Zwykły użytkownik przecież też może - nie trzeba roota ani lokalnie ani na zdalnym hoście.
Dobry art jako pierwszy krok dla poczatkujacego. Jak pierwszy raz cos robie to chce zeby zadzialalo, a pozniej mysle nad dalszym ulepszaniem tego - czyli tutaj poprawa bezpieczenstwa.
ssh to faktycznie cudowny wynalazek, ale umozliwianie logowania na roota bezposrednio przez ssh jest co najmniej proszeniem sie o klopoty.
Myślę, że treść artykułu, który podałem, wyczerpująco odpowiada na to pytanie. Kwestia bezpieczeństwa jest zawsze ważna i powinna być poruszona, a przynajmniej zaznaczona. Jeśli tworzymy klucz, który nie wymaga passphrase, z pewnością nie spełnia warunków bezpieczeństwa. Taki klucz w niepowołanych rękach może stać się bardzo groźnym narzędziem. Jeśli nasz klucz wymaga passphrase, niczym się nie różni od logowania się via ssh z użyciem hasła. ssh-agent jest odpowiednim narzędziem, które powinno zostać wykorzystane w tym opisie.
Jestem pod wrażeniem. Może opisz jeszcze jak się obsługuje winampa?
Pytanie dotyczyło możliwości realizacji określonej funkcji. Nie poruszałem aspektów bezpieczeństwa tego rozwiązania. Dziękuję za uwagi.
niebezpieczne, niepolecam zobaczcie ten artykul co dal Dawid Węgliński
Marny artykuł. Lepsze informacje na temat BEZPIECZNEGO logowania się przez ssh bez użycia haseł można znaleźć tutaj: www[dot]gentoo[dot]org/doc/pl/articles/openssh-key-management-p1.xml
ano otworzyli się podsumowanie artykułu: i tym sposobem potencjalny agresor włamując się na jeden komputer przejmuje kontrolę nad wieloma :D
Brawo, podoba mi się to, że od pewnego czasu otworzyliście się na Linuksa.
- Kingston: Nowa linia dysków SSD
- Microsoft zapowiada nowy system plików - ReFS
- Intel: SSD 520 - nowa linia szybkich dysków
- Praktyczne porady dla administratorów na 2012 rok
- Co powinien wiedzieć każdy specjalista IT?
- Narzędzia dla administratorów sieci
- Windows Intune 3.0 - szansa na perfekcyjne narzędzie?
- Kontrowersyjne decyzje Oracle odnośnie Javy
- Testy penetracyjne pomogą w obronie przed cyberatakami
- 2012 - rok przełomowy dla internetu?
Polecane
Przełomowy rok... znowu
Lektura firmowych informacji prasowych i prognoz firm analitycznych nie pozostawia wątpliwości - każdego roku...
Spokój i luz administratora
Wymagania wobec pracowników działów IT rosną proporcjonalnie do stopnia rozwoju teleinformatyki. Oczekuje się, że...