GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum „sshpass“ nicht der richtige Weg ist, um Dateiübertragungen unter Linux zu automatisieren

Frage: Mir wurde die Aufgabe zugewiesen, Dateiübertragungen zwischen Remote-Computern mit scp zu automatisieren. Aber ich bin mir nicht sicher, wie ich das Passwort als Parameter für scp angeben soll Befehl. Einer meiner Freunde schlug vor, "sshpass" zu verwenden ‘-Befehl (er kann ein Passwort als Argument verwenden), aber mein Chef sagt:„sshpass ist nicht der richtige Weg, dies zu tun, und es ist nicht sicher “. Was schlagen Sie vor?

– Ravi

Antwort:

Ravi, dein Freund hat die Antwort auf deine Frage, aber dein Chef hat recht . ‘sshpass ‘ Das Dienstprogramm verwendet ein Passwort als Argument, ist aber weniger sicher. Verwenden Sie stattdessen SSH-Schlüssel für sichere Dateiübertragungen.

Lassen Sie uns beide Methoden ausprobieren und sehen, welche sicherer ist.

Mit sshpass

Installieren Sie 'sshpass ‘ mit dem folgenden Befehl:

$ yum install sshpass

Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sshpass.x86_64 0:1.05-1.el5 set to be updated
--> Finished Dependency Resolution

Nach der Installation können Sie es wie folgt verwenden:

sshpass -p "password" scp file.txt user@remote_machine:

Achtung: Da das Passwort im Befehl erwähnt wird, kann es von anderen Benutzern angezeigt werden, die mit „w am Computer angemeldet sind ' Befehl. Um dies zu verhindern, können Sie das Passwort in einer Datei speichern und die Datei als Argument an den Befehl übergeben (siehe unten):

$ echo "password" > passfile.txt
$ chmod 600 passfile.txt
$ sshpass -f passfile.txt scp file.txt user@remote_machine:

Achtung: Das Passwort kann weiterhin aus den Protokolldateien oder dem Verlauf nachvollzogen werden.

Das Fazit lautet also:„sshpass“ ist keine sichere Methode . Stattdessen sollten Sie, wie Ihr Chef vorgeschlagen hat, sichere SSH-Schlüssel für passwortlose Verbindungen verwenden.

Sichere SSH-Schlüssel verwenden

Generieren Sie SSH-Schlüssel auf dem Quellcomputer wie folgt:

[machine-A ]$ ssh-keygen -t rsa
[machine-A ]$ scp ~/.ssh/id_rsa.pub user@machine-B:.ssh/authorized_keys

Das war’s, Sie haben eine passwortlose SSH-Verbindung zwischen Maschine A und Maschine B eingerichtet. Versuchen Sie, Dateien zu übertragen, ohne das Passwort eingeben zu müssen:

$ scp file.txt user@remote_machine:

Erledigt! Ravi, manchmal haben BOSSES recht 🙂


Linux
  1. Wo ist die Header-Datei <conio.h> unter Linux? Warum kann ich <conio.h> nicht finden?

  2. Der Linux-Befehl sed ändert die Zieldatei nicht

  3. Warum brauchen wir die .so.1-Datei unter Linux?

  4. Warum gibt pr_debug des Linux-Kernels keine Ausgabe aus?

  5. Ist es unter Linux möglich, einen Ordner/eine Partition so zu verschlüsseln, dass niemand ohne das Passwort darauf zugreifen kann?

Einführung in das Linux-Dateisystem

So bearbeiten Sie PDF-Dateien unter Linux auf die einfachste Art und Weise

Linux-Runlevels richtig verstehen

EndeavourOS – Lerne Arche richtig

Warum erkennt Windows keine Dateien in Linux-Partitionen?

Die Verwendung von chown zum Ändern des Gruppeneigentümers eines Verzeichnisses ist nicht erlaubt....Warum?