Wiadomości

Logowanie SSH bez hasła

11 lipca 2007 15:00,
Kamil Folga

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?

Pakiet SSH pozwala zarówno na zdalne logowanie bez potrzeby podawania hasła oraz zdalne wykonywanie poleceń z uprawnieniami odpowiedniego użytkownika. Nie jest to skomplikowane zadanie. Jak zrealizować logowanie bez podawania hasła? Przedstawiamy kolejne kroki:

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?
Ocena:
Twoja ocena:

Komentarze (10)

~mbr

03-08-2010 11:02

Fajnie, tylko czemu wszystko na roota? Zwykły użytkownik przecież też może - nie trzeba roota ani lokalnie ani na zdalnym hoście.

vv

29-07-2009 11:03

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.

ruanda

12-07-2007 23:48

ssh to faktycznie cudowny wynalazek, ale umozliwianie logowania na roota bezposrednio przez ssh jest co najmniej proszeniem sie o klopoty.

Dawid Węgliński

11-07-2007 19:04

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.

kuba

11-07-2007 17:45

Jestem pod wrażeniem. Może opisz jeszcze jak się obsługuje winampa?

od_autora

11-07-2007 17:32

Pytanie dotyczyło możliwości realizacji określonej funkcji. Nie poruszałem aspektów bezpieczeństwa tego rozwiązania. Dziękuję za uwagi.

shorty

11-07-2007 16:45

niebezpieczne, niepolecam zobaczcie ten artykul co dal Dawid Węgliński

Dawid Węgliński

11-07-2007 16:01

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

lord

11-07-2007 15:41

ano otworzyli się podsumowanie artykułu: i tym sposobem potencjalny agresor włamując się na jeden komputer przejmuje kontrolę nad wieloma :D

LinuxTux

11-07-2007 15:37

Brawo, podoba mi się to, że od pewnego czasu otworzyliście się na Linuksa.

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...


04-204 Warszawa ul. Jordanowska 12
tel.: (+48 22) 321 78 00 fax: (+48 22) 321 78 88
© copyright 2011 IDG Poland SA