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 root@123.123.123.123
/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?


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.


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 root@123.123.123.123

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

Diese Datei befindet sich im .sshOrdner des Benutzerordners.


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 root@123.123.123.123

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


-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 polytech@192.168.0.102"

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.