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