Der sshpass Das Dienstprogramm wird zur Implementierung der automatisierten kennwortbasierten Authentifizierung verwendet. Es wird das SSH in dedizierter TTY (Teletypewriter) ausgeführt, um zu bestätigen, dass das Kennwort von einem interaktiven Tastaturbenutzer für eine nicht interaktive Authentifizierung bereitgestellt wird. Wie zum sshpass Kann zur Authentifizierung in diesem Tutorial verwendet werden.
Voraussetzungen
Bevor Sie mit den Schritten dieses Tutorials beginnen, müssen die folgenden Schritte ausgeführt werden.
Aktivieren Sie den SSH -Dienst auf Ubuntu, wenn er vorher nicht aktiviert ist.
Generieren Sie die SSH -Schlüsselpaare, um die Befehle auf dem Remote -Server auszuführen. Führen Sie den folgenden Befehl aus, um den öffentlichen Schlüssel und den privaten Schlüssel zu erstellen. Der private Schlüssel wird auf dem Remote -Server gespeichert und die öffentlichen Schlüssel werden sicher im Client gespeichert.
$ ssh -keygen -t RSAFühren Sie den folgenden Befehl aus, um die zu öffnen sshd_config Datei mit dem Nano -Editor zum Hinzufügen einiger notwendiger Konfigurationen.
$ sudo nano/etc/ssh/sshd_configFügen Sie die folgenden Zeilen in der Datei hinzu, um die Stammanmeldung und die kennwortbasierte Authentifizierung zu aktivieren.
PasswortAuthentication JaFühren Sie den folgenden Befehl aus, um den SSH -Dienst neu zu starten.
$ sudo Service SSH NeustartSyntax
Die Syntax dieses Befehls ist unten angegeben. Es unterstützt verschiedene Optionen, die später beschrieben wurden.
$ sshpass [-f Dateiname | -D-Nummer | -P Kennwort | -E] [Optionen] BefehlsargumenteVerschiedene Optionen des SSHPass -Befehls
Der Zweck von verschiedenen sshpass Optionen wurden hier beschrieben. sshpass liest das Passwort aus der Standardeingabe, wenn keine Option angegeben ist.
Möglichkeit | Zweck |
---|---|
-p Passwort | Es wird verwendet, um das Passwort in der Befehlszeile bereitzustellen. |
-f Dateiname | Es wird verwendet, um die alternative Quelle des Passworts zu geben. |
-d Nummer | Es wird verwendet, um den von SSHPass geerbten Dateideskriptor bereitzustellen. |
-e | Es wird verwendet, um das Kennwort aus der Umgebungsvariablen "SSHPass" zu nehmen. |
SSHPass installieren
SSHPass ist standardmäßig nicht auf Ubuntu installiert. Führen Sie den folgenden Befehl aus, um SSHPass auf Ubuntu zu installieren.
$ sudo apt-get install sshpassDie folgende Ausgabe wird angezeigt, wenn die SSHPass ordnungsgemäß installiert ist.
Verbinden Sie mit dem Server, indem Sie ein Kennwort bereitstellen
In diesem Teil des Tutorials wird die Möglichkeit, sich mit dem Remote -Computer mit der SSHPass mit -P -Option zu verbinden. Hier ist der Benutzername "Fahmida" und das Passwort ist '12345' des Street -Maschine. Die IP -Adresse des Servergeräts beträgt 10.0.2.15. Der Benutzername des Client -Computers ist "Jamin". Führen Sie den folgenden Befehl aus, um eine Verbindung mit dem Server herzustellen, indem Sie das Kennwort bereitstellen.
$ sshpass -p '12345' ssh [email protected]Die folgende Ausgabe wird angezeigt, wenn die Verbindung ordnungsgemäß mit der Servermaschine festgelegt wird. Die Ausgabe zeigt, dass der Benutzername in der Eingabeaufforderung "Yesmin" in "fahmida" geändert wird, nachdem die Verbindung hergestellt wurde. Wenn der Benutzer nun einen Befehl ausführt, wird er vom Servergerät aus ausgeführt.
Verbinden Sie mit dem Server ohne Kennwort
Es ist nicht sicher, das Passwort in der Befehlszeile anzugeben. Dieses Problem kann auf zwei Arten gelöst werden. Eine Möglichkeit besteht darin, das Kennwort in der Umgebungsvariablen mit dem zu speichern Export Der Befehl und eine andere Möglichkeit besteht darin, das Passwort in einer Datei zu speichern.
Führen Sie den folgenden Befehl aus, um das Passwort in der SSHPass -Umgebungsvariablen mit dem Befehl exportieren zu speichern.
$ export sshpass = "12345"Jetzt können Sie den Befehl sshpass mit der Option -e ausführen, um die Verbindung mit dem Servergerät herzustellen, ohne ein Passwort in der Befehlszeile anzugeben. Führen Sie den folgenden Befehl aus, um eine Verbindung mit dem Server herzustellen, ohne das Kennwort zu geben.
$ sshpass -e ssh [email protected]Die folgende Ausgabe wird angezeigt, wenn die Verbindung ordnungsgemäß mit der Servermaschine festgelegt wird. Die Ausgabe zeigt, dass der Benutzername in der Eingabeaufforderung in 'fahmida' von 'Yesmin' geändert wird, nachdem die Verbindung wie der vorherige Befehl erstellt wurde.
Der Weg, um mit dem Server eine Verbindung herzustellen sshpass Durch das Speichern des Passworts in einer Datei wurde in diesem Teil des Tutorials gezeigt. Führen Sie den folgenden Befehl aus, um die zu erstellen sshfile Datei und speichern Sie das Passwort, um eine Verbindung mit dem Servergerät herzustellen.
$ echo '12345'> sshFileFühren Sie den folgenden Befehl aus, um die Berechtigungsbits für die festzulegen sshfile Datei, mit der die Datei sichern.
$ chmod 0400 sshfileFühren Sie nun den folgenden Befehl aus, um eine Verbindung mit dem Server herzustellen, ohne das Kennwort in der Befehlszeile bereitzustellen. Hier wurde die Option -F mit verwendet sshpass Befehl zum Lesen des Passworts aus der Datei.
$ sshpass -f sshfile ssh [email protected]Die folgende Ausgabe wird angezeigt, wenn die Verbindung ordnungsgemäß mit der Servermaschine festgelegt wird. Die Ausgabe zeigt, dass der Benutzername in der Eingabeaufforderung in 'fahmida' von 'Yesmin' geändert wird, nachdem die Verbindung wie der vorherige Befehl erstellt wurde.
Verwenden des Befehls sshpass im Skript
Der Befehl sshpass wird verwendet, um die Verbindung mit dem Server aus dem Terminal im vorherigen Teil dieses Tutorials herzustellen. Sie können jedoch einen Befehl im Servergerät ausführen, ohne sich im Server anzumelden, indem Sie ein Bash -Skript mit SSHPass -Befehl schreiben. Erstellen Sie eine Bash -Datei mit dem Namen ssh.Sch im Client -Computer mit den folgenden Inhalten. Das Skript führt das aus 'PWD' Befehl in der Servermaschine und speichern Sie die Ausgabe in einer Variablen. Der Wert der Variablen wird später gedruckt.
ssh.SchFühren Sie den folgenden Befehl vom Terminal aus.
$ bash ssh.SchDie folgende Ausgabe wird angezeigt, wenn die PWD Der Befehl wird im Servergerät ordnungsgemäß ausgeführt. Der Benutzername der Servermaschine ist 'Fahmida'. Die Ausgabe zeigt also, dass '/home/fahmida/' die Ausgabe der ist PWD Befehl.
Abschluss
Die Verwendung des SSHPass-Befehls für nicht interaktive Anmeldungen wurde in diesem Tutorial von zwei verschiedenen Benutzerkonten des Localhost gezeigt. Sie können dieselbe Aufgabe für den Remote -Host erledigen, indem Sie die in diesem Tutorial gezeigten Schritte ausführen.