Konfiguruj login SSH bez hasła dla wielu serwerów zdalnych za pomocą skryptu

Konfiguruj login SSH bez hasła dla wielu serwerów zdalnych za pomocą skryptu

Uwierzytelnianie oparte na kluczu SSH (znane również jako uwierzytelnianie klucza publicznego) umożliwia uwierzytelnianie bez hasła i jest to bezpieczniejsze i znacznie lepsze rozwiązanie niż uwierzytelnianie hasła. Jedną główną zaletą logowania bez hasła SSH, nie mówiąc już o bezpieczeństwie jest to, że pozwala ono na automatyzację różnych rodzajów procesów krzyżowych.

Powiązane czytanie: Jak zabezpieczyć i harten OpenSsh Server

W tym artykule zademonstrujemy, jak utworzyć parę klucza SSH i skopiować klucz publiczny do wielu zdalnych hostów Linux, ze skryptem powłoki.

Utwórz nowy klucz SSH w Linux

Najpierw wygeneruj parę klucza SSH (klucz prywatny/tożsamości, którego klient SSH używa do uwierzytelniania się podczas logowania na zdalnym serwerze SSH i klawisz publiczny zapisany jako autoryzowany klucz w zdalnym systemie z serwerem SSH) za pomocą serwera SSH) za pomocą serwera SSH) ssh-keygen polecenie w następujący sposób:

# ssh-keygen 
Wygeneruj klawisz SSH w Linux

Utwórz skrypt powłoki dla zdalnych login

Następnie utwórz skrypt powłoki, który pomoże w skopiowaniu klucza publicznego do wielu zdalnych hostów Linux.

# vim ~/.Bin/ssh-copy.cii 

Skopiuj i wklej następujący kod w pliku (odpowiednio zastąp następujące zmienne NAZWA UŻYTKOWNIKA - nazwa użytkownika do połączenia, Host_file - plik, który zawiera listę nazw hostów lub adresów IP oraz Error_file - plik do przechowywania dowolnych błędów poleceń SSH).

#!/bin/bash NAZWA UŻYTKOWNIKA= „root” Host_file= "/root/hosts" Error_file= "/tmp/ssh-copy_error.txt „public_key_file =" $ 1 ", jeśli [ ! -f $ public_key_file]; Następnie nie znaleziono „pliku” $ public_key_file ”!„Wyjdź 1 fi, jeśli [ ! -f $ host_file]; Następnie nie znaleziono „pliku” $ host_file ”!„Wyjdź 2 Fi dla IP w„ Cat $ host_file ”; do ssh-copy-id -i $ $ public_key_file [e-mail chroniony] $ ip 2> $ error_file wynik = $? jeśli [$ wynik -eq 0]; Następnie Echo „„ ​​Echo ”Klucz publiczny z powodzeniem skopiowany do $ ip„ echo ”„ else echo ”$ (cat $ error_file)„ echo exit 3 fi echo ”„ gotowe 

Zapisz plik i zamknij go.

Następnie spraw, aby skrypt był wykonywany z chmod polecenie jak pokazano.

# chmod +x ssh-copy.cii 

Teraz uruchom ssh-copy.cii skryptu i określ swój plik klucza publicznego jako pierwszy argument, jak pokazano na zrzucie ekranu:

# ./ssh-copy.sh /root /.SSH/PROD-RSA.pub 
Uruchom skrypt kopii SSH

Następnie użyj SSH-Agent Aby zarządzać klawiszami, które zawiera odszyfrowany klucz prywatny w pamięci i używa go do uwierzytelniania logowania. Po rozpoczęciu SSH-Agent, Dodaj do niego swój klucz prywatny w następujący sposób:

# eval "$ (ssh-agent -s)" # ssh-add ~/.SSH/PROD_RSA 
Rozpocznij agent SSH

Zaloguj się do zdalnego serwera Linux bez hasła

Teraz możesz zalogować się do dowolnego ze swoich zdalnych hostów bez podania hasła do uwierzytelniania użytkownika SSH. W ten sposób możesz zautomatyzować procesy krzyżowe.

# ssh [chroniony e -mail] 
Logowanie bez hasła SSH

To wszystko, co dla ciebie mieliśmy! Jeśli masz jakikolwiek wkład, w szczególności na poprawę skryptu powłoki, daj nam znać za pośrednictwem poniższego formularza sprzężenia zwrotnego.