À propos des clés SSH
Les clés SSH offrent un moyen plus sûr de se connecter à un serveur privé virtuel avec SSH que d'utiliser un mot de passe seul. Alors qu'un mot de passe peut éventuellement être déchiffré par une attaque par force brute, les clés SSH sont presque impossibles à déchiffrer par la force brute seule. La génération d'une paire de clés vous fournit deux longues chaînes de caractères :une clé publique et une clé privée. Vous pouvez placer la clé publique sur n'importe quel serveur, puis la déverrouiller en vous y connectant avec un client qui possède déjà la clé privée. Lorsque les deux correspondent, le système se déverrouille sans avoir besoin d'un mot de passe. Vous pouvez encore augmenter la sécurité en protégeant la clé privée avec une phrase de passe.
Ce guide a été principalement écrit par les gens de DigitalOcean. Découvrez leurs excellentes options de serveur à des prix compétitifs sur digitalocean.com
Première étape :créer la paire de clés RSA
La première étape consiste à créer la paire de clés sur la machine cliente (il y a de fortes chances que ce ne soit que votre ordinateur) :
ssh-keygen -t rsa
Étape 2 :Stockez les clés et la phrase de passe
Une fois que vous avez entré la commande Gen Key, vous aurez quelques questions supplémentaires :
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Vous pouvez appuyer sur Entrée ici, en enregistrant le fichier dans l'accueil de l'utilisateur (dans ce cas, mon exemple d'utilisateur s'appelle demo).
Enter passphrase (empty for no passphrase):
C'est à vous de décider si vous souhaitez utiliser une phrase de passe. La saisie d'une phrase de passe a ses avantages :la sécurité d'une clé, aussi cryptée soit-elle, dépend toujours du fait qu'elle n'est visible par personne d'autre. Si une clé privée protégée par une phrase secrète tombe en possession d'un utilisateur non autorisé, il ne pourra pas se connecter à ses comptes associés tant qu'il n'aura pas trouvé la phrase secrète, ce qui fera gagner du temps à l'utilisateur piraté. Le seul inconvénient, bien sûr, d'avoir une phrase de passe, c'est de devoir la saisir à chaque fois que vous utilisez la paire de clés.
L'ensemble du processus de génération de clé ressemble à ceci :
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/demo/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/demo/.ssh/id_rsa. Your public key has been saved in /home/demo/.ssh/id_rsa.pub. The key fingerprint is: 4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a The key's randomart image is: +--[ RSA 2048]----+ | .oo. | | . o.E | | + . o | | . = = . | | = S = . | | o + = + | | . o + o . | | . o | | | +-----------------+
La clé publique se trouve maintenant dans /home/demo/.ssh/id_rsa.pub La clé privée (identification) se trouve maintenant dans /home/demo/.ssh/id_rsa
Étape 3 :Copiez la clé publique
Une fois la paire de clés générée, il est temps de placer la clé publique sur le serveur virtuel que nous voulons utiliser.
Vous pouvez copier la clé publique dans le fichier authorized_keys de la nouvelle machine avec la commande ssh-copy-id. Assurez-vous de remplacer l'exemple de nom d'utilisateur et d'adresse IP ci-dessous.
ssh-copy-id [email protected]
Alternativement, vous pouvez coller les clés en utilisant SSH :
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Quelle que soit la commande que vous avez choisie, vous devriez voir quelque chose comme :
The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established. RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts. [email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
Maintenant, vous pouvez continuer et vous connecter à [email protected] et vous ne serez pas invité à entrer un mot de passe. Cependant, si vous définissez une phrase secrète, il vous sera demandé de saisir la phrase secrète à ce moment-là (et chaque fois que vous vous connecterez par la suite).
Étape 4 facultative :désactivez le mot de passe pour la connexion racine
Une fois que vous avez copié vos clés SSH sur votre serveur et vous êtes assuré que vous pouvez vous connecter uniquement avec les clés SSH , vous pouvez continuer et restreindre la connexion root pour qu'elle ne soit autorisée que via des clés SSH.
Pour ce faire, ouvrez le fichier de configuration SSH :
sudo nano /etc/ssh/sshd_config
Dans ce fichier, recherchez la ligne qui inclut PermitRootLogin
et modifiez-le pour vous assurer que les utilisateurs ne peuvent se connecter qu'avec leur clé SSH :
PermitRootLogin without-password
Appliquez les modifications :
service openssh-server restart