Je veux générer un ensemble de clés pour un serveur domestique sur lequel je voudrais utiliser SSH, je fais donc ssh-keygen -t rsa
, mais je reçois un message: id_rsa already exists. Overwrite (y/n)?
Eh bien, je ne veux pas écraser parce que les clés que j’utilise maintenant pour SSH dans les serveurs de mon université, et il serait pénible de devoir refaire tout ce bazar à chaque fois que je veux changer. Existe-t-il un moyen facile d’ajouter les clés?
J'ai essayé de suivre un tutoriel (que je ne trouve pas) suggérant quelque chose sur l'utilisation de la commande cat
, mais je suis plutôt perdu. Il semble que la solution soit quelque chose de très simple que je ne vois pas.
Si je me souviens bien, j'ai résolu ce problème en désinstallant Cygwin et en utilisant la ligne de commande.
Vous pouvez utiliser la même clé publique sur les deux serveurs. Si vous ne voulez pas faire cela, spécifiez simplement un emplacement différent de ~/.ssh/id_rsa
lorsque ssh-keygen
vous le demanderait auparavant et utilisez-le avec un agent:
% ssh-agent sh # Replace with your favourite Shell.
$ ssh-add ~/.ssh/id_rsa_2
$ ssh somewhere
$ exit
%
ssh-agent
peut également être utilisé sans démarrer un nouveau shell en tant que eval $(ssh-agent)
.
Vous pouvez y parvenir en utilisant un fichier de configuration dans votre répertoire personnel sous le répertoire .ssh
:
Générez votre clé comme d'habitude:
ssh-keygen -t rsa
Ne pas écraser la valeur par défaut (généralement id_rsa
). Au lieu de cela, créez un nouveau nom. Cela créera un fichier séparé avec votre clé.
Dans ~/.ssh, créez un fichier config
avec le contenu suivant:
Host * (asterisk for all hosts or add specific Host)
AddKeysToAgent yes
UseKeychain yes
IdentityFile <key> (e.g. ~/.ssh/yourKey)
La clé est maintenant ajoutée au trousseau et peut être utilisée!
-
Vous pouvez utiliser plusieurs IdentityFiles dans votre configuration (exemple Mac):
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa_private_server
IdentityFile ~/.ssh/id_rsa_github
IdentityFile ~/.ssh/id_rsa_work_server
J'ai eu le même problème que toi et je l'ai résolu.
Dans le terminal est:
"Entrez le fichier dans lequel enregistrer la clé (/home/you/.ssh/id_rsa):")
Au lieu de frapper Enter ou en écrivant /home/you/.ssh/id_rsa
, vous écrivez /home/you/.ssh/id_rsa1
.
Vous pouvez faire comme minitech suggéré et utiliser la même clé publique SSH sur les deux serveurs. Pour ce faire, ouvrez le fichier ~/.ssh/id_rsa.pub
dans votre éditeur de texte, copiez le contenu du fichier exactement sans ajouter de nouveaux espaces ni de nouvelles lignes, puis ajoutez-le au serveur auquel vous souhaitez vous connecter. Si votre nom d'utilisateur sur le serveur est "utilisateur" à l'adresse IP 123.45.56.78, utilisez la commande "ssh-copy-id [email protected]" ou vous pouvez utiliser:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"