Pour utiliser ssh-id-copy, avez-vous besoin à la fois d'id_rsa.pub et d'id_rsa?

19

J'essaie de configurer une deuxième clé ssh d'accès pour un ami. Il m'a envoyé son id_rsa.pub.

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

Ai-je besoin de lui pour m'envoyer les deux fichiers?


la source
1
Le .pub est suffisant. Et gardez à l'esprit que vous gardez toujours votre clé privée secrète (en tout temps!). Pour ajouter une nouvelle clé, vous pouvez simplement ajouter le contenu de .pub à vos clés autorisées.
deagh
2
@deaghVous n'avez pas besoin de garder une clé privée secrète, vous devez la garder en sécurité.
Le script ssh-copy-id ici ne semble pas émettre ce message d'erreur particulier. Je remarque que votre script ssh-copy-id se trouve dans / usr / local / bin. Elle peut être différente de la version couramment utilisée de la commande.
Kenster

Réponses:

12

La ssh-copy-idcommande d'OpenSSH échoue si aucun fichier de clé privée du même nom n'est disponible, car il essaie de se connecter avec la clé spécifiée pour vérifier s'il est déjà présent sur le serveur distant.

Dans les versions récentes, vous pouvez remplacer ce comportement avec le -fcommutateur ("Mode forcé").

Depuis la page de manuel :

-f

    Mode forcé: ne vérifie pas si les clés sont présentes sur le serveur distant. Cela signifie qu'il n'a pas besoin de la clé privée. Bien sûr, cela peut entraîner l'installation de plusieurs copies de la clé sur le système distant.

Dario Seidl
la source
1
Attention, l'ordre des paramètres est strict. -fne fonctionne comme prévu que si vous le passez avant l' -iargument. ssh-copy-id -i mykey.pub -f otheruser@hostse plaint juste, jusqu'à ce que vous bougiez -f à l'avant.
init_js
5

C'est .pubsuffisant. Vous n'êtes pas dans le bon dossier.

Vous pouvez essayer ceci:

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

(pour l'utilisateur root: non recommandé, c'est juste un exemple).

Ce fichier se trouve dans le .sshdossier du dossier utilisateur.

Jérémy Munoz
la source
4
Sur Mac, il a besoin de -fsi vous n'avez pas la clé privée, je pense
Stevie G
1

Comme mentionné ici, c'est un bug.

Quoi qu'il en soit, vous pouvez simplement créer un fichier vide pour le faire fonctionner. Dans ton cas:

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

J'ai eu le même problème et cela a fonctionné pour moi 👍

jawira
la source
-1

cela fonctionne pour moi la question est quand il demande "Entrez le fichier dans lequel enregistrer la clé (/Users/xiaoyu/.ssh/id_rsa):" u devrait taper id_rsa

et utilisez la commande "ssh-copy-id -i ~ / .ssh / id_rsa.pub [email protected]"

user984431
la source