Benötigen Sie zur Verwendung von ssh-id-copy sowohl id_rsa.pub als auch id_rsa?

19

Ich versuche, einen zweiten SSH-Schlüssel für einen Freund einzurichten. Er hat mir seine id_rsa.pub geschickt.

ssh-copy-id -i id_rsa.pub [email protected]
/usr/local/bin/ssh-copy-id: ERROR: failed to open ID file './id_rsa': No such file or directory

Muss er mir beide Dateien schicken?


quelle
1
Die .pub ist ausreichend. Und denken Sie daran, dass Sie Ihren privaten Schlüssel immer geheim halten (jederzeit!). Um einen neuen Schlüssel hinzuzufügen, können Sie den Inhalt von .pub einfach an Ihre authorized_keys anhängen.
Deagh
2
@deaghSie müssen keinen privaten Schlüssel geheim halten, sondern ihn sicher aufbewahren.
Das ssh-copy-id-Skript hier scheint diese bestimmte Fehlermeldung nicht auszugeben. Ich stelle fest, dass sich Ihr ssh-copy-id-Skript in / usr / local / bin befindet. Dies kann sich von der häufig verwendeten Version des Befehls unterscheiden.
Kenster

Antworten:

12

Der ssh-copy-idBefehl von OpenSSH schlägt fehl, wenn keine private Schlüsseldatei mit demselben Namen verfügbar ist, da versucht wird, sich mit dem angegebenen Schlüssel anzumelden, um zu überprüfen, ob er bereits auf dem Remote-Server vorhanden ist.

In neueren Versionen können Sie dieses Verhalten mit dem -fSchalter überschreiben ("Erzwungener Modus").

Von der Manpage :

-f

    Erzwungener Modus: Überprüft nicht, ob die Schlüssel auf dem Remote-Server vorhanden sind. Dies bedeutet, dass der private Schlüssel nicht benötigt wird. Dies kann natürlich dazu führen, dass mehr als eine Kopie des Schlüssels auf dem Remote-System installiert wird.

Dario Seidl
quelle
1
Heads Up, die Reihenfolge der Parameter ist streng. -fFunktioniert nur dann wie erwartet, wenn Sie es vor dem -iArgument übergeben. ssh-copy-id -i mykey.pub -f otheruser@hostBeschwert euch nur, bis ihr vorne angekommen seid.
Init_js
5

Das .pubist ausreichend. Sie befinden sich nicht im richtigen Ordner.

Sie können dies versuchen:

ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

(für den root-Benutzer: nicht empfohlen, es ist nur ein Beispiel).

Diese Datei befindet sich im .sshOrdner des Benutzerordners.

Jérémy Munoz
quelle
4
Auf dem Mac braucht es den, -fwenn du nicht auch den privaten Schlüssel hast, denke ich
Stevie G
1

Wie hier erwähnt, ist dies ein Fehler.

Auf jeden Fall können Sie einfach eine leere Datei erstellen, damit sie funktioniert. In deinem Fall:

$ touch ./id_rsa
$ ssh-copy-id -i id_rsa.pub [email protected]

Ich hatte das gleiche Problem und das hat bei mir geklappt 👍

jawira
quelle
-1

es funktioniert für mich die Frage ist, wenn es fragt "Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/Users/xiaoyu/.ssh/id_rsa):" Sie sollten id_rsa eingeben

und benutze den Befehl "ssh-copy-id -i ~ / .ssh / id_rsa.pub [email protected]"

user984431
quelle