Ce tutoriel vous montrera comment générer et sécuriser des clés SSH sur macOS Sierra (10.12) et macOS High Sierra (10.13). Les clés SSH vous permettent de vous connecter à votre serveur sans mot de passe. Ils augmentent la commodité ainsi que la sécurité en étant beaucoup plus résistants aux attaques par force brute.
SSH (Secure Shell) est un protocole le plus souvent utilisé pour la gestion à distance et pour le transfert de fichiers souvent appelé sFTP (Secure File Transfer Protocol). Lorsque vous accédez à un serveur distant tel qu'un VPS Vultr, il est recommandé d'utiliser SSH avec PKE (Public Key Exchange) qui utilise une paire de clés où la clé publique est fournie au serveur et la clé privée stockée sur votre machine.
Les clés SSH peuvent être ajoutées automatiquement aux serveurs pendant le processus d'installation en ajoutant vos clés publiques dans le panneau de configuration Vultr. Vous pouvez gérer vos clés SSH sur cette page . Il est important de se rappeler que ce ne sont que vos clés publiques (généralement désignées par .pub
), vous ne devez jamais exposer vos clés privées.
Types de clés
Il existe plusieurs types de touches différents qui peuvent être sélectionnés. Utilisez l' -t
argument lors de la génération, tel que ssh-keygen -t ed25519
. Le type de clé ED25519, qui utilise une signature à courbe elliptique, est plus sûr et plus performant que DSA ou ECDSA. La plupart des logiciels SSH modernes (comme OpenSSH depuis la version 6.5) prennent en charge le type de clé ED25519, mais vous pouvez toujours trouver un logiciel incompatible, donc le type de clé par défaut est toujours RSA.
Le type de clé par défaut est RSA 2048 bits qui offre une bonne sécurité et compatibilité. Pour plus de sécurité, vous pouvez choisir une taille de clé plus grande en utilisant l' -b
argument lors de la génération, par exemple ssh-keygen -b 4096
pour créer une paire de clés RSA 4096 bits.
Génération de clés
Pour générer une clé SSH, vous devrez ouvrir Terminal.app
dans "Applications> Utilitaires> Terminal".
Pour créer une paire de clés RSA 4096 bits, entrez:
ssh-keygen -b 4096
Vous verrez alors:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa):
Appuyez sur Entrée / Retour pour enregistrer votre nouvelle paire de clés à cet emplacement par défaut, ce qui est recommandé. Vous aurez alors la possibilité de créer une phrase secrète, qui cryptera la clé afin qu'elle ne puisse pas être utilisée sans autorisation. L'utilisation d'une phrase secrète est également recommandée.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is:
SHA256:0irBXp+xKwT5e0ZFklbEVkzxu0Bzv9PmvstFD5w6zlQ [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| =o++. |
| + + .. |
| . . + o o |
| .o . .. + + |
| ooo S. . E o|
| . oo+.+ + ++|
| o..o+ + .o=|
| .o o. + ..oo|
| +. o ==|
+----[SHA256]-----+
À ce stade, votre paire de clés a été créée et stockée dans ~/.ssh/id_rsa
. Pour mettre la clé à la disposition du système et stocker la phrase secrète dans le trousseau du système, nous devrons effectuer plusieurs étapes supplémentaires. Notez que cela n'est nécessaire que si vous préférez ne pas être invité à saisir la phrase secrète de clé chaque fois qu'elle est utilisée.
Ajouter une nouvelle paire de clés à l'agent SSH
Entrez ssh-add -K ~/.ssh/id_rsa
. Vous serez ensuite invité à saisir la phrase secrète et vous verrez ce qui suit:
Identity added: id_rsa ([email protected])
Si vous souhaitez utiliser cette clé SSH pour vous connecter à un serveur qui a déjà été créé, vous pouvez utiliser l' ssh-copy-id
outil pour stocker la clé publique sur le serveur auquel vous souhaitez accéder.
Ajouter une nouvelle clé au serveur distant
En utilisant ssh-copy-id
:
# Substitute your server IP
ssh-copy-id -i ~/.ssh/id_rsa [email protected]
La console vous demandera votre mot de passe de connexion car le serveur distant n'a pas encore connaissance de votre clé. Vous verrez ce qui suit:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Vous pouvez maintenant tenter de vous connecter au serveur distant avec ssh [email protected]
et vous devez être connecté sans invite de mot de passe.