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.
Klucz id_rsa tworzysz bez hasła, tak? Musimy się tu liczyć z tym, że nikt nie ukradnie klucza prywatnego? =P
OdpowiedzUsuńZgadzam się, trzeba się z tym liczyć :)
Usuń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.