SCP fordert bei Verwendung von identity_file zur Eingabe eines Kennworts auf, SSH jedoch nicht

672
Victor

Ich habe einen neuen Schlüssel ssh-keygen -t rsaohne Passphrase erstellt. Ich habe dann den Schlüssel mithilfe von ssh-copy-id root@192.168.x.xund scsh an den Host übertragen und dann ssh'ed, ssh 'root@192.168.x.x'und es gibt mich zu, ohne dass ich ein Kennwort eingeben muss. Wenn ich jedoch mit dem Befehl scp versuche, werden scp -i ~/.ssh/id_rsa.pub test.wav root@192.168.x.x:/home/test/Sie zur Eingabe eines Kennworts aufgefordert .

Es wird nur zur Eingabe einer Passphrase für den Schlüssel und den Benutzer -i identity_fileaufgefordert, wenn ich die Option verwende. Ich möchte dies vermeiden, damit es in einem Skript ausgeführt werden kann.

-1

2 Antworten auf die Frage

0
Edel Gerardo

Verwenden Sie die erweiterungslose Datei anstelle der PUB-Datei. Wenn Sie eine Schlüsseldatei mit einer Passphrase verwenden möchten, versuchen Sie es mit sshpass :

sshpass -p "" scp -i ~/.ssh/id_rsa test.wav root@192.168.x.x:/home/test/ 

Ersetzen Sie das Kennwort durch die Passphrase Ihres Schlüssels.

Installiere sshpass aus den Repositorys (zB sudo apt-get install sshpass)

0
Kenster
scp -i ~/.ssh/id_rsa.pub test.wav root@192.168.x.x:/home/test/ 

Sie verwenden hier die falsche Schlüsseldatei. Die Datei mit der Erweiterung ".pub" ist die Datei mit dem öffentlichen Schlüssel. Die entsprechende Datei ohne die Erweiterung ".pub" ist die private Schlüsseldatei. Wenn Sie einen SSH-Client ausführen, um eine Verbindung zu einem Remote-Server herzustellen, müssen Sie die private Schlüsseldatei dem SSH-Client zur Verfügung stellen.

~/.ssh/id_rsaist einer der Schlüssel, die ssh standardmäßig versucht. Wenn sshes möglich ist, sich zu authentifizieren, ohne einen expliziten Schlüssel angeben zu müssen, scpkann dies wahrscheinlich auch Folgendes tun:

scp test.wav root@192.168.x.x:/home/test/ 

Wenn Sie die Schlüsseldatei angeben möchten, geben Sie die Datei ohne die Erweiterung ".pub" an:

scp -i ~/.ssh/id_rsa test.wav root@192.168.x.x:/home/test/