wtorek, 3 stycznia 2012

ssh bez hasła

Piszę to głównie po to aby nie musieć szukać ponownie tych informacji za miesiąc lub dwa, gdy będę musiał konfigurować rsync lub coś podobnego...

Mamy dwa serwery:
A - serwer produkcyjny
B - serwer backup

Zakładam, że na serwerze B posiadamy już użytkownika (np. backup) i folder .ssh w jego katalogu domowym. Zakładam także, że posiadamy już plik .ssh/authorized_keys (lub .ssh/authorized_keys2)
Jeśli nie, to:
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Na serwerze A, z którego będziemy robili upload za pomocą rsync generujemy klucz prywatny i publiczny, np:

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

Kopiujemy klucz publiczny z maszyny A na B:
scp ~/.ssh/id_rsa.pub server_b_username@server_b_domain:~/id_rsa.pub

Następnie logujemy się poprzez ssh na serwer B.
cd .ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub

Następnie wylogowujemy się z serwera B, logujemy się na serwer A i z niego powinniśmy być w stanie zalogować się na serwer B bez podawania hasła.

2 komentarze:

  1. Klucz id_rsa tworzysz bez hasła, tak? Musimy się tu liczyć z tym, że nikt nie ukradnie klucza prywatnego? =P

    OdpowiedzUsuń
    Odpowiedzi
    1. Zgadzam się, trzeba się z tym liczyć :)

      Poza tym przydałby się update do posta, można to zrobić zdecydowanie prościej, jest coś takiego jak ssh-copy-id, co automatycznie kopiuje klucz publiczny na serwer docelowy.

      Usuń