web-dev-qa-db-fra.com

Spécification d'un fichier d'identité avec SSH

J'essaie de créer un moyen plus rationalisé d'établir une connexion client SSH à un serveur distant. J'ai créé une paire de clés publique/privée et utilisé ssh-copy-id pour installer la clé publique sur le serveur distant.

Cependant, il demandait toujours le mot de passe, sauf si je mettais le chemin du fichier d'identité avec quelque chose comme ssh -i ~/.ssh/mykey user@Host. Dois-je taper ceci pour contourner le mot de passe avec l'authentification par clé publique?

Pour contourner cela, j'ai utilisé .bashrc et créé un alias en utilisant ce chemin. Cependant, est-ce la façon de procéder? Ou est-ce simplement une question de serveur autorisant la clé publique pour que je puisse simplement utiliser le ssh user@Host?

7
Troy

Si vous pouvez utiliser avec succès l'authentification par paire avec ssh -i ~/.ssh/mykey user@Host, vous pouvez facilement automatiser cela avec la configuration de votre client SSH.

Par exemple, si vous ajoutez ceci, faites votre ~/.ssh/config fichier:

Host hostname
  User username
  IdentityFile ~/.ssh/mykey

Vous pouvez alors simplement ssh hostname, et vos paramètres de nom d'utilisateur et de fichier d'identité seront gérés par votre fichier config et vous partez pour les courses, comme on dit.

La directive IdentityFile (que le -i switch for ssh overrides) a un paramètre par défaut qui recherchera ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519, et ~/.ssh/id_rsa; tout autre nom de fichier pour les clés privées doit être spécifié dans le fichier config ou avec -i sur la ligne de commande.

14
DopeGhoti