Logowanie przez putty (ssh) bez użycia hasła

  • Data: 2012

Protokół ssh oferuje kilka metod uwierzytelniania użytkowników. Poza najbardziej popularnym: login i hasło mamy możliwość skorzystania z certyfikatów, które są parą kluczy (prywatną i publiczną). Podczas procesu autoryzacji, serwer dysponując kluczem publicznym, tworzy tzw. challenge, który tylko użytkownik posiadający klucz prywatny tej samej pary, ma możliwość odszyfrować i potwierdzić swoją tożsamość. Rozwiązanie to ma swoje zalety jak i wady z przewagą zalet.
ZALETY:

  • Jesteśmy zabezpieczeni przed keylogger-ami.
  • Ktoś podsłucha sesję, co jest dużo trudniejsze ale możliwe. Przy kolejnym połączeniu serwer wygeneruje inny challenge i niestety nasz włamywacz-amator nie dysponując kluczem prywatnym nie będzie w stanie wygenerować poprawnej odpowiedzi, a nagrana wcześniej nie będzie prawidłowa.
  • Metoda "siłowa" jest praktycznie niemożliwa.

Wada jest chyba tylko jedna, mianowicie istnieje ewentualność fizycznego, rzadziej zdalnego przejęcia klucza prywatnego z maszyny klienckiej. Tyle teorii, przejdźmy do rzeczy.


  • Następujące czynności wykonujemy na windowsie

  • Ściągamy i uruchamiamy program puttygen
  • Zaznaczamy opcję: (x) SSH-2 RSA (długość klucza wybieramy pod własne potrzeby ale nie mniej niż 1024), klikamy generate po czym machamy myszką po pustym polu (to nie żart, naprawdę trzeba nią machać)
  • Zapisujemy klucz prywatny w znanym Ci tylko miejscu (będzie on używany przez putty)
  • Następujące czynności wykonujemy na serwerze

  • Zapisujemy klucz publiczny a następnie przenosimy go na serwer
  • Już na serwerze konwertujemy nasz klucz do formatu openssh poleceniem:
    ssh-keygen -if klucz_publiczny > klucz_publiczny_openssh_format
  • Zmieniamy prawa dostetpu katalogu .ssh poleceniem: chmod 700 .ssh
  • Kopiujemy nasz klucz publiczny(openssh_format) do pliku .ssh/authorized_key:cat klucz_publiczny >> .ssh/authorized_key
  • Kasujemy już skopiowany plik poleceniem:rm klucz_publiczny
  • Ponownie zmieniamy prawa dostępu katalogu .ssh: chmod 600 .ssh/authorized_key
  • Następujące czynności wykonujemy na windowsie

  • Uruchamiamy putty.Zaznaczamy zapisaną konfigurację. Przechodzimy do Connection=>Data podając nasz login w polu Auto login username
  • Następnie przechodzimy do SSH=>Auth, podajemy ścieżkę do naszego klucza prywatnego w polu Private key file for authentication
  • Wracamy do Session zapisując konfigurację

Powrót »