Sftp-Skript zum Übertragen von Dateien unter Linux mit Passwort
Mit SFTP können Sie Dateien unter Linux sicher übertragen. Manchmal müssen Sie jedoch möglicherweise Dateien automatisch mit SFTP übertragen. In solchen Fällen kann die Passwortabfrage ein Hindernis darstellen. In diesem Artikel erfahren Sie, wie Sie ein SFTP-Skript zum Übertragen von Dateien unter Linux mit einem Kennwort erstellen. Sie müssen eine Bibliothek eines Drittanbieters wie keychain, sshpass oder expect verwenden, die Ihr SFTP-Passwort automatisch bereitstellt, um Ihr Leben zu vereinfachen. Für unseren Artikel werden wir SSHpass verwenden. Wir werden uns auch ansehen, wie Sie die sofortige Kennwortauthentifizierung ohne Verwendung von SSHpass mithilfe von ssh-copy einrichten.
Was ist SSHpass
SSHPass ist ein einfaches Befehlszeilentool, mit dem Sie Kennwörter für Eingabeaufforderungen und Skripte bereitstellen können, um Aufgaben, die eine Authentifizierung erfordern, ohne Unterbrechung zu automatisieren. Es erleichtert die nicht interaktive Passwortauthentifizierung.
Sftp-Skript zum Übertragen von Dateien unter Linux mit Passwort
Hier sind die Schritte zum Übertragen von Dateien unter Linux mit Passwort
Set SSH password
Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um Ihr SSH-Passwort festzulegen. Ersetzen Sie Ihr-Passwort-hier durch Ihr SSH-Passwort.
export SSHPASS=your-password-here
Datei unter Linux übertragen
Führen Sie den folgenden Befehl aus, um Dateien unter Linux zu übertragen. Ersetzen Sie user durch Ihren SFTP-Benutzernamen, remote-host durch Ihre SFTP-Hostadresse, /data durch den Speicherort des Remote-Ordners und your-file.melden Sie sich mit Ihrem Dateinamen an, den Sie übertragen möchten.
sshpass -e sftp -oBatchMode=no -b - sftp-user@remote-host << ! cd /data put your-file.log bye!
Sie können die beiden oben genannten Befehle zu Ihrer Shell-Skriptdatei hinzufügen, damit Ihr SFTP-Skript Dateien mit einem Kennwort überträgt.
Alternativer Weg
Sie können alternativ die ssh-copy-Funktion verwenden, um dasselbe zu tun. Bei diesem Ansatz müssen Sie einen öffentlichen Schlüssel für Ihren Client erstellen und diesen öffentlichen Schlüssel auf Ihrem Remoteserver hinzufügen. Sobald Sie dies tun, verwendet der Remote-Server immer Ihren öffentlichen Schlüssel und fordert Sie nicht mehr zur Eingabe eines Kennworts auf.
Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um den öffentlichen Schlüssel für Ihren Client zu erstellen.
ssh-keygen
Sie werden aufgefordert, 3 Fragen, drücken Sie einfach die Eingabetaste für jede Aufforderung. Dadurch wird Ihr öffentlicher Schlüssel generiert.
Führen Sie den folgenden Befehl aus, um Ihren öffentlichen Schlüssel auf Ihren remove SFTP-Server zu kopieren. Ersetzen Sie remote-host durch die Host-IP-Adresse Ihres SFTP-Servers.
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
Sie werden aufgefordert, auf den Schlüssel des Remote-Hosts zuzugreifen/ihn abzulehnen. Drücken Sie y yo akzeptieren. Als nächstes werden Sie aufgefordert, das Passwort Ihres Remote-Servers einzugeben. Geben Sie es ein, um Ihren öffentlichen Schlüssel erfolgreich zur Liste der akzeptierten öffentlichen Schlüssel des Remote-Servers hinzuzufügen. Sie werden in der Lage sein, es zu finden in .ssh/authorized_key Datei.
Von nun an werden Sie bei der Verwendung von scp, ssh oder sftp nicht mehr zur Eingabe eines Kennworts aufgefordert.
In diesem Artikel haben wir uns zwei verschiedene Möglichkeiten zum Übertragen von Dateien mit SFTP angesehen.
Lesen Sie auch:
So kehren Sie die Zeichenfolge in Python um
So stellen Sie mit Python eine Verbindung zur PostgreSQL-Datenbank her
So entfernen Sie Snap in Ubuntu
So wählen Sie zufällige Datensätze in MySQL aus
So ändern Sie den Verzeichnisbesitzer unter Linux rekursiv