Konfiguruj login SSH bez hasła dla wielu serwerów zdalnych za pomocą skryptu
- 3954
- 471
- Ignacy Modzelewski
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 ServerW 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-keygenWygeneruj 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.pubUruchom 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_RSARozpocznij 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.
- « 9 Przydatne polecenia, aby uzyskać informacje o procesorze w Linux
- Jak przełączyć (SU) na inne konto użytkownika bez hasła »