457 Stimmen

Wie wird das Passwort an scp übergeben?

Ich weiß, dass es nicht empfohlen wird, aber ist es überhaupt möglich, das Passwort des Benutzers an scp zu übergeben?

Ich möchte eine Datei per scp als Teil eines Batch-Jobs kopieren, und der empfangende Server benötigt natürlich ein Passwort, und nein, ich kann das nicht einfach auf eine schlüsselbasierte Authentifizierung umstellen.

742voto

KevinS Punkte 7257

Utilisez sshpass :

sshpass -p "password" scp -r user@example.com:/some/remote/path /some/local/path

oder damit das Passwort nicht in der Bash-Historie erscheint

sshpass -f "/path/to/passwordfile" scp -r user@example.com:/some/remote/path /some/local/path

Der obige Befehl kopiert den Inhalt des Pfades vom entfernten Rechner auf Ihren lokalen Rechner.

Installieren:

  • ubuntu/debian
    • apt install sshpass
  • centos/fedora
    • yum install sshpass
  • mac mit macports
    • port install sshpass
  • Mac mit Gebräu
    • brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

68voto

mustafaturan Punkte 2019

Erzeugen Sie einfach einen ssh-Schlüssel wie:

ssh-keygen -t rsa -C "your_email@youremail.com"

kopieren Sie den Inhalt von ~/.ssh/id_rsa.pub und fügen Sie sie schließlich den entfernten Rechnern hinzu ~/.ssh/authorized_keys

Sicherstellen, dass der entfernte Rechner über die entsprechenden Berechtigungen verfügt 0700 for ~./ssh folder y 0600 for ~/.ssh/authorized_keys

61voto

gWay Punkte 847

Wenn Sie sich von Windows aus mit dem Server verbinden, können Sie mit der Putty-Version von scp ("pscp") das Kennwort mit dem Befehl -pw Parameter.

Dies wird in der Dokumentation hier erwähnt.

49voto

MBerg Punkte 371

Curl kann als Alternative zu scp verwendet werden, um eine Datei zu kopieren, und es unterstützt ein Passwort auf der Kommandozeile.

curl --insecure --user username:password -T /path/to/sourcefile sftp://desthost/path/

43voto

Pat Notz Punkte 196406

Sie können das Skript mit einem Tool wie erwarten (es gibt auch praktische Bindungen, wie Erwarten Sie für Python).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X