comment 0

Logowanie za pomocą klucza SSH

Logowanie za pomocą klucza SSH jest o wiele bezpieczniejsze od logowania się zwykłym hasłem, oraz można wykorzystać je do zautomatyzowania procesu logowania. Takiego sposobu logowania używam praktycznie wszędzie. Czy to serwer z Linuksem, FreeBSD czy innym Uniksem wszędzie gdzie mogę loguję się kluczami SSH. No to zaczynamy:

  1. Górne menu i Access -> Users and Groups, klikamy czerwony plus i dodajemy użytkownika do systemu. Podajemy nazwę, pełną nazwę konta i hasło. Wybieramy mu powłokę, Shell -> bash (ja preferuję bash’a ze względu, że wszędzie gdzie pracuję jest podstawową powłoką). Pamiętamy dodać użytkownikowi dodatkową grupę sshd umożliwiającą logowanie się do usługi SSH. Zapisujemy i zatwierdzamy zmiany.
  2. Logujemy się do systemu za pomocą nowego użytkownika.
    Welcome to NAS4Free!
    [sshuser@piecyk ~]$
  3. Tworzymy katalog domowy dla naszego użytkownika gdzie będziemy trzymać nasz klucz SSH oraz przechodzimy od razu do niego. DATA to jest nasz dysk czy macierz z danymi w systemie.
    [sshuser@piecyk ~]$ mkdir -p /mnt/DATA/sshuser/.ssh
    [sshuser@piecyk ~]$ cd /mnt/DATA/sshuser/.ssh
  4. Generujemy parę kluczy, prywatny oraz publiczny.
    [sshuser@piecyk ~/DATA/sshuser/.ssh]$ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/mnt/.ssh/id_rsa): /mnt/DATA/sshuser/.ssh/id_rsa
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /mnt/DATA/sshuser/.ssh/id_rsa.
    Your public key has been saved in /mnt/DATA/sshuser/.ssh/id_rsa.pub.
    The key fingerprint is:
    28:84:8a:0a:e3:5e:d5:50:dc:20:d5:80:ae:82:cd:66 sshuser@piecyk.local
    The key's randomart image is:
    +--[ RSA 2048]----+
    |     .+==        |
    |   . .o. o       |
    |  . o.           |
    |.. . .o.         |
    |*o  o...S        |
    |=oE...           |
    |.+..             |
    |. .              |
    | .               |
    +-----------------+
  5. Tworzymy plik authorized_keys czyli plik z kluczami publicznymi, za pomocą których możemy się logować do systemu. Tutaj akurat tworzymy go z klucza publicznego naszego klucza prywatnego bo za jego pomocą będziemy się logować.
    [sshuser@piecyk ~/DATA/sshuser/.ssh]$ cp id_rsa.pub authorized_keys
  6. Kopiujemy plik z kluczem prywatnym na nasz docelowy komputer za pomocą SCP, FTP, SMB czy jak nam wygodnie.
  7. Przechodzimy jeszcze raz do Access -> Users and Groups i edytujemy naszego użytkownika. Dodajemy mu katalog domowy, u mnie odpowiednio jest to /mnt/DATA/sshuser
  8. Na komputerze z którego łączę się do serwerów korzystam z programu Putty. Nasz klucz należy przekonwertować programem puttygen na odpowiedni. Menu Conversions -> Import Key. Zmieniamy komentarz, możemy klucz zabezpieczyć hasłem jeżeli nie służy do zautomatyzowanych działań. Zapisujemy go przyciskiem Save private key.
  9. Zapisany klucz ppk podajemy w kategorii SSH -> Auth putty
  10. Jeżeli popranie podaliśmy adres IP oraz port to powita nas zapytanie o nazwę użytkownika. Jeżeli podamy nazwę naszego użytkownika to nastąpi automatyczne logowanie za pomocą klucza prywatnego i uzyskamy dostęp do systemu.
    login as: sshuser
    Authenticating with public key "NAS4FREE Piecyk.local"
    Last login: Tue Feb 23 21:06:25 2016 from 10.0.250.2
    Welcome to NAS4Free!
    [sshuser@piecyk ~]$
  11. Możemy zautomatyzować proces podając na zakładce Data  w polu Auto-login username nasz login, to wtedy putty zaloguje nas automatycznie lub jeżeli podaliśmy hasło do klucza, zapyta o nie.

Możliwości jest bardzo wiele, ustawiając sobie wszystko w Puttym, zapisując sesje i logując się do maszyn kluczami bez haseł można uprościć sobie proces do skrótu na pulpicie. Czyli tworzymy skrót do programu Putty np. na pulpicie. Klikamy PPM na niego i dodajemy w wierszu Element docelowy

C:\programy\putty.exe -load "nazwa_sesji"

Zmieniamy sobie nazwę skrótu na dowolny i teraz uruchamiając taki skrót od razu logujemy się do wybranej maszyny.

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *