Logowanie bez hasła przez PuTTy

Logowanie bez hasła brzmi strasznie, ale nam chodzi jedynie o przyspieszenie i ułatwienie logowania na nasze ulubione serwery bez podawania za każdym razem hasła użytkownika. Przydatna jest to funkcja szczególnie jeżeli pracuje się na większej ilości serwerów dosyć regularnie.

Oczywiście zakładamy, że dostęp do serwera mamy (znamy login i hasło), a klucz prywatny będziemy trzymać i pilnować jak oka w głowie – wiadomo – nasz serwer nie będzie pytał już o hasło. Po prostu zaloguje nas z wykorzystaniem klucza.

Zasadniczo PuTTy pod Windowsem nie ma sobie równych – przynajmniej ja nie znam nic innego. Brakuje mi tylko jednej funkcji – zakładek. Nie mniej jednak da się bez nich żyć.

A teraz po kolei – musimy wygenerować sobie komplet kluczy RSA. Ściągamy więc ze strony PuTTy‚ego program PuTTYgen. Interface bardzo nie różni się od PuTTego:

putty1.webp

Klikamy na Generate i machamy myszką aż do uzyskania zadowalającego efektu losowości. Następnie klikamy na Save private key.

putty3.webp

Zapisujemy plik w bezpiecznej lokalizacji, bez hasła. Czyli klikamy na Yes.

Teraz musimy ustawić dwa istotne elementy. Domyślnego użytkownika, którym będziemy się logować oraz nasz klucz prywatny który właśnie wygenerowaliśmy.

Wybór użytkownika – wpisujemy w okienko „Auto-login username„:

putty4.png

No i wskazujemy klucz (Browse):

putty5.webp

Konfigurację PuTTego mamy z głowy. Nie zapomnijmy zapisać ustawień.

Teraz trzeba dostać się na serwer i podać mu jego część klucza.

Otwieramy więc plik z kluczem, który wygenerowaliśmy w notatniku, albo innym ulubionym edytorze. Jest to unikalny format PuTTego więc musimy z niego wyciągnąć tylko potrzebne informacje:

Plik wygląda mniej więcej tak:

PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: rsa-key-20110602
Public-Lines: 4
AAAAB3N**************************************************woUk8D4
kiarLzT**************************************************4JIIR6p
4gLqDQe**************************************************rle8cKk
DfxU508=
Private-Lines: 8

Musimy skopiować całą część po

Public-Lines: 4

, czyli to co zaczyna się na przykłądzie od AAA a kończy na 508= Trzeba to przeformatować do jednej linii nie kasując niczego po drodze 🙂 Zadanie wymaga precyzji.

Ok. Teraz logujemy się na serwer jeszcze przy pomocy loginu i hasła. Wchodzimy do naszego katalogu domowego:

cd ~

tworzymy katalog – o ile nie istnieje – o nazwie .ssh

mkdir .ssh

zmieniamy mu uprawnienia na 700 – to bardzo ważne, bez tego autoryzacja NIE ZADZIAŁA. Czyli

chmod 700 .ssh

Dalej – tworzymy w tym katalogu plik o nazwie:

authorized_keys

Zwróćna to, że pomiędzy wyrazami jest podkreślnik a nie spacja. Pierwszą linię zaczynamy od spacji, potem wpisujemy:

ssh-rsa

wciskamy kolejną spację a potem to co udało nam się wyciąć z naszego klucza… całość wygląda mniej więcej tak:

putty6.png

Ważne żeby dać spację przed ssh-rsa i po, potem wkleić cały klucz pobliczny jako jedną linię. Zapisujemy plik, zmieniamy mu uprawnienia:

chmod 600 authorized_keys

Nie muszę chyba powtarzać, że bez tego nie zadziała?

Dobra… teraz możemy spróbować połączyć się przez PuTTego – jeżeli wszystkie kroki wykonane zostały zgodnie z instrukcją – zadziała. Jeżeli nie?

No cóż.. co może być źle:

  • złe uprawnienia do pliku klucza – sprawdź co pokazuje /var/log/secure
  • błąd w skopiowanym kluczu (tym z PuTTego) – sprawdź czy nie zostawiłeś spacji, ablo znaku końca linii, ewentualnie czy czegoś nie skasowałeś
  • brak spacji lub błąd w nazwie pliku authorized_keys
  • serwer sshd może nie obsługiwać autoryzacji rsa
  • sprawdź co mówią logi: /var/log/auth.log