sshpass jest doskonałym narzędziem do nieinteraktywnego logowania SSH - nigdy nie używaj na serwerze produkcyjnym

sshpass jest doskonałym narzędziem do nieinteraktywnego logowania SSH - nigdy nie używaj na serwerze produkcyjnym

W większości przypadków administratorów systemu Linux logują się do zdalnych serwerów Linux za pomocą SSH, podając hasło lub login bez hasła SSH lub uwierzytelnianie SSH oparte na klucz.

Co jeśli chcesz dostarczyć hasło wraz z nazwa użytkownika do SSH, monitu? Tam jest sshpass przychodzi na ratunek.

sshpass jest prostym i lekkim narzędziem wiersza poleceń, które umożliwia nam podanie hasła (nieinteraktywne uwierzytelnianie hasła) do samego wiersza polecenia, dzięki czemu można wykonać zautomatyzowane skłonki do scenariuszy do pobierania kopii zapasowych za pośrednictwem Cron Scheduler.

SSH używa prostego dostępu do TTY, aby upewnić się, że hasło jest faktycznie dostarczane przez interaktywnego użytkownika klawiatury. Sshpass działa ssh w oddanym tty, wprowadza go w błąd do przekonania, że ​​otrzymuje hasło od interaktywnego użytkownika.

Ważny: Za pomocą sshpass Uważany za najmniej bezpieczny, ponieważ ujawnia hasło wszystkim użytkownikom systemu w wierszu poleceń z prostym „PS” Komenda. Gorąco polecam użycie uwierzytelniania SSH bez hasła.

Zainstaluj SSHass w systemach Linux

W Redhat/Centos Systemy oparte na najpierw musisz włączyć repozytorium EPEL w systemie, aby go zainstalować za pomocą polecenia Yum, jak pokazano.

# Yum Zainstaluj sshpass # dnf instaluj sshpass [on Fedora 22+ wersje] 

W Debian/Ubuntu i jego pochodnych można go zainstalować za pomocą polecenia apt-get, jak pokazano.

$ sudo apt-get instaluj sshpass 

Alternatywnie możesz zainstalować ze źródła, aby mieć najnowszą wersję sshpass, Najpierw pobierz kod źródłowy, a następnie wyodrębnij zawartość pliku TAR i zainstaluj go jak:

$ wget http: // sourceforge.net/projekty/sshpass/files/najnowszy/pobierz -o sshpass.smoła.gz $ tar -xvf sshpass.smoła.gz $ cd sshpass-1.06 $ ./Skonfiguruj # sudo, aby zainstalować 

Jak używać sshpass w Linux

sshpass jest używany razem z ssh, Możesz zobaczyć wszystkie sshpass Opcje użytkowania z pełnymi opisami, wydając poniższe polecenie:

$ sshpass -h 
Pomoc Sshpass
Użycie: sshPass [-f | -d | -p | -e] [-hv] Parametry polecenia -F nazwa pliku weź hasło do użycia z numeru pliku -d Numer Użyj jako deskryptor pliku do uzyskania hasła -p Podaj hasło jako argument ( bezpieczeństwo niemożliwe) -e hasło jest przekazywane jako env -var „sshpass” bez parametrów -hasło zostanie pobrane ze stdin -h show help (ten ekran) -V Drukuj informacje o najwyżej jeden z -f, -d, -p lub -e należy użyć 

Jak już wspomniałem, sshpass jest bardziej niezawodny i przydatny do celów skryptowych, rozważ przykładowe polecenia poniżej.

Zaloguj się do zdalnego serwera Linux SSH (10.42.0.1) Z nazwą użytkownika i hasła i sprawdź wykorzystanie dysku systemu plików zdalnego systemu, jak pokazano.

$ sshpass -p „my_pass_here” ssh [e -mail chroniony] „df -h” 

Ważny: Tutaj hasło jest podawane w wierszu poleceń, które jest praktycznie niezabezpieczone, a użycie tej opcji nie jest zalecane.

sshpass - zdalne logowanie Linux za pośrednictwem SSH

Aby jednak zapobiec wyświetlaniu hasła na ekranie, możesz użyć -mi flag i wprowadź hasło jako wartość Sshpass Zmienna środowiskowa jak poniżej:

$ export sshpass =„my_pass_here” $ echo $ sshpass $ sshpass -e ssh [e -mail chroniony] „df -h” 
sshpass - ukryj hasło w podpowiedzi

Notatka: W powyższym przykładzie, Sshpass Zmienna środowiskowa jest wyłącznie w celu tymczasowym i zostanie usunięta podczas ponownego uruchomienia.

Aby na stałe ustawić Sshpass zmienna środowiskowa, otwórz /itp./Profil Plik i wpisz instrukcję eksportu na początku pliku:

Eksportuj sshpass =„my_pass_here” 

Zapisz plik i wyjdź, a następnie uruchom poniższe polecenie, aby wpłynąć na zmiany:

$ źródło /etc /profil 

Z drugiej strony możesz również użyć -F Flag i umieść hasło w pliku. W ten sposób możesz przeczytać hasło z pliku w następujący sposób:

$ sshpass -f Hasło_filename ssh [e -mail chroniony] „df -h” 
sshPass - Podaj plik hasła do logowania

Możesz także użyć sshPass do przesyłania plików za pomocą plików SCP lub kopii zapasowej/synchronizacji przez RSYNC za pomocą SSH jak pokazano:

------- Przenieś pliki za pomocą SCP ------- $ scp -r/var/www/html/przykład.com - -rsh = "sshpass -p „my_pass_here” ssh -l aaronkilik "10.42.0.1:/var/www/html ------- Pliki kopii zapasowej lub synchronizacji za pomocą RSync ------- $ rsync - -rsh = "sshpass -p „my_pass_here” ssh -l aaronkilik "10.42.0.1:/Data/Backup//Backup/ 

Aby uzyskać więcej użycia, proponuję przeczytać przez sshpass Strona Man, Typ:

$ man sshpass 

W tym artykule wyjaśniliśmy sshpass proste narzędzie, które umożliwia nieinteraktywne uwierzytelnianie hasła. Chociaż te narzędzia mogą być pomocne, zaleca się korzystanie z bardziej bezpiecznego mechanizmu uwierzytelniania klucza publicznego SSH.

Proszę, zostaw pytanie lub komentarz za pośrednictwem sekcji informacji zwrotnej poniżej, aby uzyskać dalsze dyskusje.