sobota, 23 czerwca 2012

Linux - SSH bez hasła - klucze RSA

Jeśli Twoja dzienna aktywność wymaga logowania na konta w wielu systemach Linux przez SSH, będziesz szczęśliwy wiedząc (jeśli już nie wiesz :) ), że jest sposób by umożliwić bezpieczny, uwierzytelniony zdalny dostęp, transfer plików, zdalne wykonywanie skryptów bez konieczności pamiętania i wpisywania haseł. SSH umożliwia wykorzystanie mechanizmu kluczy RSA do bezpiecznego logowania się do systemu.


1. generowanie kluczy RSA

Pierwszym krokiem jest wygenerowanie pary kluczy RSA na lokalnym systemie. Klucze użytkownika są przechowywane w katalogu $HOME/.ssh/ Do wygenerowania pary kluczy należy wykonać komendę:

# ssh-keygen -t rsa

Generating public/private rsa key pair. 
Enter file in which to save the key (/root/.ssh/id_rsa):


(Jest to bezpieczne, naciśnij enter tutaj jako / root / .ssh jest domyślnym i zalecanym katalogu do przechowywania RSA plik).

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 


(Hasło tutaj wpiszesz muszą być wprowadzane za każdym razem użyć klucza RSA, ale na szczęście można ustawić bez hasła, naciskając klawisz Enter. Jednak plusem jest to, że trzeba tylko pamiętać jedno hasło dla wszystkich systemów, które uzyskują dostęp przez uwierzytelnianie kluczem RSA. Można zmienić passhrase później za pomocą "ssh-keygen-p").

Your identification has been saved in /root/.ssh/id_rsa. 
Your public key has been saved in /root/.ssh/id_rsa.pub. 


Twoje klucze zostały zapisane w odpowiednim katalogu. Upewnijmy się tylko że nikt inny ich nie odczyta.


# chmod 700 .ssh
# chmod 600 .ssh/id_rsa

# chmod 600 .ssh/id_rsa.pub


2. instalowanie klucza publicznego w zdalnym systemie

Teraz należy zainstalować klucz publiczny w systemie zdalnym. W tym celu należy skopiować plik

$HOME/.ssh/id_rsa.pub

Najlepiej zrobić to za pomoca komendy:

# scp .ssh/id_rsa.pub root@<IP_ADDRESS>:~/

Komenda ta skopjuje klucz publiczny do katalogu domowego użytkownika. Następnie logujemy się za pomocą SSH na system zdalny używając tego samego loginu co poprzednio - po raz ostatni podajemy hasło :) Autoryzowane klucze znajdują się w pliku 

$HOME/.ssh/authorized_keys

Musimy teraz przenieść nasz klucz publiczny do tego pliku.

# cat id_rsa.pub >> .ssh/authorized_keys

Uwaga na dwa ">>", użycie ich spowoduje dołączenie nowego klucza do pliku. W przypadku użycia tylko jednego znaku ">" plik zostanie nadpisany i stracimy zapisane tam inne klucze!!!

Następnie należy upewnić się, że tylko użytkownim ma dostęp do katalogu i pliku z kluczami

# chmod 700 .ssh
# chmod 600 .ssh/authorized_keys


3. sprawdzenie autoryzacji RSA

Po wszystkim sprawdzamy czy autoryzacja RSA działa. Wylogowujemy się z systemu zdalnego i wpisujemy:

# ssh root@<IP_ADDRESS>

Powinniśmy zobaczyć konsolę zdalnego systemu bez pytania się o hasło. Jeśli została podana passphrasse to ją podajemy jako hasło.

UWAGA:
Logowanie za pomocą kluczy jest tak długo bezpieczne jak długo bezpieczny jest nasz klucz prywatny. Nie udostępniaj go nikomu. Tylko za jego pomocą możliwe będzie zalogowanie się na zdalny system. Jego utrata bądź uszkodzenie spowoduje brak dostępu do systemu.

Brak komentarzy:

Prześlij komentarz