Vous pouvez copier votre clé publique sur les machines distantes. Tant que l'authentification par clé publique est activée et que votre clé publique est présente sur la machine distante, vous pouvez ssh
accéder aux machines sans avoir à fournir de mot de passe.
Vous devez d'abord générer une paire de clés publique / privée comme ceci:
ssh-keygen -t rsa
Suivez les invites. Quand il vous demande si vous souhaitez protéger la clé avec une phrase secrète, dites OUI! C'est une mauvaise pratique de ne pas protéger vos clés par mot de passe et je vais vous montrer comment ne devoir saisir le mot de passe que de temps en temps.
Si vous avez déjà une paire de clés, vous pouvez ignorer l'étape ci-dessus.
Maintenant, en supposant que votre clé ssh existe sur votre Mac ~/.ssh/id_rsa.pub
, vous pouvez l'installer sur une machine distante en exécutant:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Pour votre exemple de serveur spécifique cité ci-dessus, la commande ressemblerait à:
cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Vous devrez entrer le mot de passe pour root@123.456.789.012
effectuer cette copie, mais ce devrait être la dernière fois que vous devez le faire. En supposant que le serveur distant sshd
est configuré pour effectuer l'authentification par clé publique-privée, lorsque vous accédez à la boîte maintenant, il ne devrait pas vous demander de mot de passe pour le root
compte - à la place, il vous demandera le mot de passe pour votre clé . Lisez la suite pour savoir comment faire de ce quelque chose que vous n'avez pas besoin d'entrer tout le temps.
Répétez ce qui précède pour chaque machine que vous souhaitez utiliser avec vos clés au lieu d'un mot de passe.
Veuillez noter que toute personne qui met la main sur votre ~/.ssh/id_rsa
fichier peut accéder à cette machine root
sans fournir de mot de passe pour la machine distante. Un mot de passe protégeant le fichier de clé garantit qu'ils auraient besoin de connaître le mot de passe pour que cette clé puisse l'utiliser. Assurez-vous que ce fichier est sécurisé. Utilisez le chiffrement du disque sur votre Mac et limitez les autorisations sur le fichier et le ~/.ssh/
répertoire.
Pour faciliter l'utilisation de la clé sans avoir à saisir le mot de passe à chaque fois, OS X exécute un ssh-agent
processus en arrière-plan sur votre machine. Cet agent mettra en cache la paire de clés la première fois que vous l'utiliserez, vous n'aurez donc qu'à saisir votre mot de passe de temps en temps. Si vous ne dormez que sur votre Mac, ne le redémarrez jamais, vous pouvez passer de longues périodes sans avoir à saisir votre mot de passe.
Vous pouvez pré-mettre en cache toutes vos clés SSH avec ssh-agent
en exécutant:
ssh-add
Il ne vous reste plus qu'à vous souvenir du mot de passe de la clé , pas des nombreux mots de passe de compte différents. Je garde généralement mes mots de passe clés dans 1Password (sans affiliation), ce qui simplifie encore le nombre de mots de passe dont je dois me souvenir. Ensuite, je les recherche simplement dans 1Password et les coupe-colle dans le terminal le temps impair que je redémarre mon Mac et provoque le redémarrage de mon fonctionnement ssh-agent
.
Si vous combinez la copie de votre clé sur des machines distantes avec la solution de gestion de connexion Terminal.app dans cette question , vous aurez quelque chose de très proche de PuTTY pour l'expérience de connexion GUI.
Côté serveur, vérifiez /etc/ssh/sshd_config
et assurez-vous:
PubkeyAuthentication yes
est activé dans la configuration (c'est par défaut dans OpenSSH). Vous pouvez également définir:
PasswordAuthentication no
Pendant que vous y êtes, l'authentification par mot de passe est désactivée et les clés deviennent le seul moyen d'accéder à la machine.
Vous devrez redémarrer sshd sur la machine si vous apportez des modifications au fichier de configuration.