Wie kann ich mit scp oder sftp in einem Shell-Skript Dateien von einem Server auf einen anderen kopieren?

Wie kann ich mit scp oder sftp in einem Shell-Skript Dateien von einem Server auf einen anderen kopieren?

Ich erstelle derzeit ein Skript, mit dem ich Dateien entweder mit scpoder von einem Server auf einen anderen kopieren möchte sftp. Was mich verwirrt, ist die Authentifizierung.

Wenn ich verwende scp, wie gebe ich dann das Passwort ein?

Antwort1

Für diese Art der automatisierten Nutzung sollten Sie keine Kennwortauthentifizierung verwenden, sondern eine schlüsselbasierte Authentifizierung. Bei der schlüsselbasierten Authentifizierung wird die Verbindung hergestellt, ohne dass eine Kennwortabfrage erforderlich ist.

Sie müssen auf der Seite, auf der Sie den SSH-Client verwenden, ein Schlüsselpaar generieren und dann Ihren öffentlichen Schlüssel auf den SSH-Server kopieren. Sie werden endlose Seiten darüber finden, wie das geht, aber hier ist eine:

https://www.linode.com/docs/security/authentication/use-public-key-authentication-with-ssh/

Antwort2

Verwenden Sie SSH-Schlüssel für mehr Sicherheit

Oder Sie können sshpass installieren und Folgendes tun:

sshpass -p "password" scp file.txt user@machine:/path

verwandte Informationen