Nous utilisons généralement des clients SSH tels que PuTTY pour gérer à distance des serveurs Linux. Cependant, la méthode de connexion courante par mot de passe est sujette au problème de force brute des mots de passe. Par conséquent, nous définissons généralement le port SSH sur un port autre que le port par défaut 22, ou nous désactivons la connexion du compte root. En fait, il existe une meilleure façon d'assurer la sécurité et de vous permettre de vous connecter à distance en tant que root en toute confiance—c'est-à-dire la connexion par clé.
Le principe de la connexion par clé est : utiliser un générateur de clés pour créer une paire de clés—une clé publique et une clé privée. Ajoutez la clé publique à un compte sur le serveur, puis utilisez la clé privée sur le client pour terminer l'authentification et vous connecter. Ainsi, sans la clé privée, personne ne peut forcer votre mot de passe via SSH pour se connecter à distance au système. De plus, si vous copiez la clé publique vers d'autres comptes ou même hôtes, vous pouvez également vous connecter avec la clé privée.
Ci-dessous, nous expliquons comment générer une paire de clés sur un serveur Linux, ajouter la clé publique à un compte, configurer SSH et enfin vous connecter via un client.
1. Générer une paire de clés
Tout d'abord, générez la paire de clés sur le serveur. D'abord, connectez-vous avec votre mot de passe au compte que vous souhaitez utiliser pour la connexion par clé, puis exécutez la commande suivante :
[root@host ~]$ ssh-keygen <== 建立密钥对 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空 Enter same passphrase again: <== 再输入一遍密钥锁码 Your identification has been saved in /root/.ssh/id_rsa. <== 私钥 Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥 The key fingerprint is: 0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host
La phrase de passe de la clé doit être saisie lors de l'utilisation de la clé privée, ce qui protège la clé privée contre le vol. Bien sûr, vous pouvez également la laisser vide pour obtenir une connexion sans mot de passe.
Maintenant, un répertoire caché nommé .ssh a été créé dans le répertoire personnel de l'utilisateur root, contenant deux fichiers de clé. id_rsa est la clé privée, et id_rsa.pub est la clé publique.
2. Installer la clé publique sur le serveur
Tapez la commande suivante pour installer la clé publique sur le serveur :
[root@host ~]$ cd .ssh [root@host .ssh]$ cat id_rsa.pub >> authorized_keys
Cela termine l'installation de la clé publique. Pour garantir une connexion réussie, assurez-vous que les permissions de fichier suivantes sont correctes :
[root@host .ssh]$ chmod 600 authorized_keys [root@host .ssh]$ chmod 700 ~/.ssh
3. Configurer SSH pour activer la connexion par clé
Modifiez le fichier /etc/ssh/sshd_config et effectuez les réglages suivants :
RSAAuthentication yes PubkeyAuthentication yes
En outre, veuillez vérifier si l'utilisateur root peut se connecter via SSH :
PermitRootLogin yes
Une fois que vous avez terminé tous les réglages et que vous vous êtes connecté avec succès à l'aide d'une clé, désactivez ensuite la connexion par mot de passe :
PasswordAuthentication no
Enfin, redémarrez le service SSH :
[root@host .ssh]$ service sshd restart
4. Téléchargez la clé privée sur le client et convertissez-la dans un format que PuTTY peut utiliser
Utilisez des outils tels que WinSCP ou SFTP pour télécharger le fichier de clé privée id_rsa sur la machine cliente. Ensuite, ouvrez PuTTYGen, cliquez sur le bouton Load dans Actions, et chargez le fichier de clé privée que vous venez de télécharger. Si vous avez défini une phrase de passe de clé plus tôt, vous devrez la saisir à ce moment-là.
Après un chargement réussi, PuTTYGen affichera les informations liées à la clé. Saisissez une description pour la clé dans Key comment, puis cliquez sur le bouton Save private key pour enregistrer le fichier de clé privée dans un format que PuTTY peut utiliser.
À l'avenir, lorsque vous vous connecterez avec PuTTY, vous pourrez sélectionner votre fichier de clé privée dans Private key file for authentication: sous Connection -> SSH -> Auth à gauche, puis vous connecter. Pendant le processus, vous n'aurez qu'à saisir la phrase de passe de la clé.