Si la clé n'est pas nommée id_rsa, elle ne fonctionne pas

14

J'ai créé une clé pour se connecter en SSH avec une phrase secrète. J'ai nommé ma clé id_rsa_admin. Lorsque je me connecte, le message suivant s'affichePermission denied (publickey).

Dans les journaux, je trouve que ssh recherche un fichier id_rsaet ne trouve donc pas le bon fichier.

Je trouve que si la clé n'est pas nommée, id_rsacela ne fonctionne pas.

Comment se connecter en ssh?

~/.ssh/id_rsa_admin

ssh [email protected] -p 9215
Mathieu
la source

Réponses:

39

La réponse d'Arronical est bonne pour une connexion unique, mais serait douloureuse à long terme. Afin de sshtoujours utiliser cette clé lors de la connexion à ce serveur, vous pouvez l'ajouter à votre ~/.ssh/config(ou la créer si elle n'existe pas):

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin

Ensuite, vous pouvez vous connecter avec juste ssh [email protected] -p 9215. En prime, vous pouvez également configurer le port:

Host vps718449.ovh.net
    IdentityFile ~/.ssh/id_rsa_admin
    Port 9215

Ensuite, vous pouvez vous connecter avec juste ssh [email protected]. Même plus loin:

Host vps718449.ovh.net vps
     Hostname vps718449.ovh.net
     User admin
     IdentityFile ~/.ssh/id_rsa_admin
     Port 9215

Alors ça ssh vpsmarchera! Bien sûr, ce vpsn'est qu'un exemple, vous pouvez utiliser tout autre alias que vous souhaitez (par exemple si vous avez plusieurs VPS). Voir man ssh_configpour une liste des options que vous pouvez y définir.

fkraiem
la source
@fkraiem merci. Comment faire avec trois clés?
Mathieu
1
@Mathieu Pourquoi trois clés? S'il s'agit de trois hôtes différents, ajoutez simplement une entrée pour chaque hôte, chacune avec la clé appropriée.
fkraiem
@fkraiem J'ai 3 clés différentes sur le même serveur mais pour 3 utilisateurs
Mathieu
@Mathieu Je ne peux pas le confirmer pour le moment, mais je pense que l'ajout de trois IdentityFilelignes dans la Hostsection devrait fonctionner. De plus, si vous mettez une Userligne, cet utilisateur deviendra la valeur par défaut lors de la connexion à cet hôte, mais vous pouvez toujours la remplacer par @.
fkraiem
@fkraiem Merci beaucoup. Cela fonctionne, mais l'erreur suivante s'affiche: "L'agent a admis ne pas avoir signé avec la clé". J'utilise "SSH_AUTH_SOCK = 0" pour me connecter mais cela doit être fait à chaque redémarrage. Y a-t-il une autre salutation?
Mathieu
16

Vous devez utiliser l' -ioption de votre commande ssh en utilisant le chemin d'accès à votre clé. La commande modifiée sera:

ssh -i ~/.ssh/id_rsa_admin [email protected] -p 9215
Arronical
la source
Merci. Avec votre réponse, l'erreur suivante s'affiche "ssh: impossible de résoudre le nom d'hôte i: nom ou service inconnu"
Mathieu
5
Mettre -iavant le nom d'hôte fonctionne aussi; Je pense que @Mathieu a simplement oublié le trait d'union. : p
fkraiem