it-swarm.com.de

Wie verwende ich meine Schlüsseldatei, um Daten per SFTP von einem Server auf einen anderen zu übertragen?

Ich kann nicht scp, der andere Server nimmt nur SFTP-Verbindungen.

Derzeit versuche ich zu tun

sftp [email protected]:/files> put -r ~/

-i keyname funktioniert nicht, wird nur mit illegal option -- i aufgelöst.

20
Jay

Versuchen:

sftp -o "IdentityFile=keyname" [email protected]

Sie können -o verwenden, um alle in ~/.ssh/config gültigen Optionen zu übergeben.

27
Celada

Kopieren Sie Ihren PUBLIC-Schlüssel auf herkömmliche Weise auf den Server.

Auf dem Server:

  • Erstelle .ssh falls er nicht existiert:
[[! -d "$ {HOME}/.ssh"]] && mkdir -p "$ {HOME}/.ssh"
  • Implementieren Sie den öffentlichen Schlüssel:
cat /path/to/public_key.pub >> "$ {HOME} /. ssh/authorized_keys"
  • Legen Sie die entsprechenden Berechtigungen fest. OpenSSH ist SEHR ANAL bezüglich der Berechtigungen der fraglichen Dateien:
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh/authorized_keys"

Danach sollten Sie sich mit dem PRIVATE-Schlüssel vom Client aus anmelden können. Um eine Übertragung zu automatisieren, möchten Sie eine Stapeldatei verwenden, bei der es sich lediglich um eine Textdatei handelt, die eine Liste der auszuführenden Befehle enthält.

 echo "put filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt[.____.)sftp -b /tmp/batchfile.txt -oIdentityFile =/path/to/private_key user @ Host 

Alternativ können Sie auch eine ~/.ssh/config-Datei im ssh_config-Format erstellen, damit Sie dies in Zukunft einfach eingeben können:

 sftp -b /tmp/batchfile.txt Host 

Beispielinhalt von ~/.ssh/config

 Host the_hostname 
 User user_name 
 IdentityFile /path/to/private_key
2
UtahJarhead

Wenn Sie sftp auf ec2 einrichten möchten, kann dieser Artikel hilfreich sein

1
Anshu

Ich habe mich vor kurzem mit diesem Problem befasst und bei der Einrichtung meines MacBook-Standardterminals hat Folgendes funktioniert

sftp -i ./privateFilePath.key [email protected]

Beachten Sie, dass Sie möglicherweise mit der Meldung UNPROTECTED PRIVATE KEY FILE! befördert werden. In diesem Fall müssen Sie diesen Befehl ausführen, um sicherzustellen, dass andere nicht auf Ihren privaten Schlüssel zugreifen können .

chmod 600 privateFilePath.key 

In einigen Fällen müssen Sie Sudo vor den Befehl stellen. Dies ist nur möglich, wenn Sie in einem admin-geschützten Verzeichnis arbeiten

Ich wünschte, das wäre hilfreich :)

0
KhaledMohamedP