web-dev-qa-db-fra.com

Ajouter une clé RSA sans écraser

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.

12
itsmichaelwang

Si je me souviens bien, j'ai résolu ce problème en désinstallant Cygwin et en utilisant la ligne de commande.

1
itsmichaelwang

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).

8
Ry-

Vous pouvez y parvenir en utilisant un fichier de configuration dans votre répertoire personnel sous le répertoire .ssh:

  1. Générez votre clé comme d'habitude:

    ssh-keygen -t rsa
    
  2. 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é.

  3. 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)
    
  4. 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
7
GreensterRox

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.

0
maihuynhtruc

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"
0
user3291025