SSH est un protocole client et serveur, et il nous aide à accéder en toute sécurité au système distant sur le réseau via le tunnel crypté. SSH dispose d'un mécanisme de transfert de fichiers intégré (SCP) pour transférer des fichiers et des répertoires sur le réseau, et il est bien plus sécurisé que FTP (File Transfer Protocol).
Dans les grands environnements, il est pénible de saisir le mot de passe à chaque fois pour accéder aux machines distantes. Ainsi, pour faciliter la connexion, nous pouvons utiliser la fonction SSH sans mot de passe pour accéder à la machine distante sans entrer le mot de passe.
Ici, nous verrons comment configurer la connexion sans mot de passe SSH sur CentOS 8 / RHEL 8.
Hypothèses
Ici, nous avons deux machines avec deux noms d'utilisateur différents.
Nom d'hôte | Adresse IP | Utilisateur | SE | Objectif |
---|---|---|---|---|
server.itzgeek.local | 192.168.0.10 | raj | CentOS 8 / RHEL 8 | Machine source |
client.itzgeek.local | 192.168.0.20 | bélier | CentOS 8 / RHEL 8 | Machine de destination |
Ici, j'utiliserai un nom d'hôte au lieu d'une adresse IP.
Suivez les étapes pour créer la connexion sans mot de passe.
Configurer la connexion sans mot de passe SSH sur CentOS 8
Pour activer la connexion SSH sans mot de passe, nous devons placer la clé publique de la machine locale dans le fichier ~/.ssh/authorized_keys de la machine distante (~ représente le répertoire personnel de l'utilisateur).
Nous pouvons configurer une connexion SSH sans mot de passe de deux manières. Choisissez l'une des façons.
- Utilisation de la commande ssh-copy-id
- Copier les clés manuellement
Utilisation de la commande ssh-copy-id
Cette méthode consiste à générer une paire de clés SSH sur la machine source et à la placer sur la machine de destination avec une seule commande (ssh-copy-id).
La commande ssh-copy-id ajoute la clé publique SSH générée aux clés existantes dans le fichier ~/.ssh/authorized_keys sur la destination. Si le fichier ~/.ssh/authorized_keys n'est pas présent sur la machine de destination, la commande le créera et placera la clé publique SSH.Générer la clé publique
Connectez-vous à la machine source et créez une paire de clés SSH à l'aide de la commande suivante.
[raj@server ~]$ ssh-keygen
Sortie :
Generating public/private rsa key pair. Enter file in which to save the key (/home/raj/.ssh/id_rsa): Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/raj/.ssh/id_rsa. Your public key has been saved in /home/raj/.ssh/id_rsa.pub. The key fingerprint is: SHA256:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected] The key's randomart image is: +---[RSA 2048]----+ |+**o+.. | |o=+E X . | |.oX+& * | |.ooO.X = | |. = o * S | | o . + o | | . . o . | | o | | . | +----[SHA256]-----+
Une fois que vous avez créé, vous trouverez deux fichiers id_rsa et id_rsa.pub dans le répertoire .ssh. Nous allons utiliser id_rsa.pub (clé publique) pour la connexion SSH sans mot de passe.
[raj@server ~]$ ls -al ~/.ssh/
Sortie :
total 8 drwx------. 2 raj raj 38 Nov 7 21:50 . drwx------. 3 raj raj 74 Nov 7 21:50 .. -rw-------. 1 raj raj 1831 Nov 7 21:50 id_rsa -rw-r--r--. 1 raj raj 406 Nov 7 21:50 id_rsa.pub
Copier la clé publique
Utilisez la commande ssh-copy-id fournie avec le package openssh-clients avec un fichier d'entrée id_rsa.pub.
[raj@server ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Sortie :
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/raj/.ssh/id_rsa.pub" The authenticity of host 'client.itzgeek.local (192.168.0.20)' can't be established. ECDSA key fingerprint is SHA256:z4TLSbno9MLNF1ucNq4gtMlLQDVgrfLKEt8JguchKdo. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: 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.
Copier les clés manuellement
Générer la clé publique
Cette méthode consiste à générer une paire de clés SSH sur la machine source et à la placer sur la machine de destination en s'y connectant manuellement.
Tout d'abord, connectez-vous à la machine source et créez une paire de clés SSH à l'aide de la commande suivante.
[raj@server ~]$ ssh-keygen
Sortie :
Generating public/private rsa key pair. Enter file in which to save the key (/home/raj/.ssh/id_rsa): Created directory '/home/raj/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/raj/.ssh/id_rsa. Your public key has been saved in /home/raj/.ssh/id_rsa.pub. The key fingerprint is: SHA256:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected] The key's randomart image is: +---[RSA 2048]----+ |+**o+.. | |o=+E X . | |.oX+& * | |.ooO.X = | |. = o * S | | o . + o | | . . o . | | o | | . | +----[SHA256]-----+
Une fois que vous avez créé, vous trouverez deux fichiers id_rsa et id_rsa.pub dans le répertoire .ssh. Nous allons utiliser id_rsa.pub (clé publique) pour la connexion SSH sans mot de passe.
[raj@server ~]$ ls -al ~/.ssh/
Sortie :
total 8 drwx------. 2 raj raj 38 Nov 7 21:50 . drwx------. 3 raj raj 74 Nov 7 21:50 .. -rw-------. 1 raj raj 1831 Nov 7 21:50 id_rsa -rw-r--r--. 1 raj raj 406 Nov 7 21:50 id_rsa.pub
Copier la clé publique
Vous pouvez utiliser la commande scp pour copier id_rsa.pub vers la destination ou copier le contenu du fichier id_rsa.pub et le coller dans le fichier ~/.ssh/authorized_keys de la machine de destination.Méthode 1
Connectez-vous à la machine de destination et créez le répertoire .ssh dans le répertoire personnel de l'utilisateur, s'il n'existe pas.
[ram@client ~]$ mkdir ~/.ssh [ram@client ~]$ chmod 700 ~/.ssh
Utilisez la commande scp pour copier id_rsa.pub dans le répertoire /tmp de la machine de destination.
[raj@server ~]$ scp -pr ~/.ssh/id_rsa.pub [email protected]:/tmp
Vous devrez entrer le mot de passe de la destination car nous n'avons pas encore configuré la connexion sans mot de passe.
Placez la clé publique dans le fichier authorized_keys pour une connexion sans mot de passe.
[ram@client ~]$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
Mettez à jour l'autorisation du fichier.
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
Méthode 2
Connectez-vous à la machine de destination et créez un répertoire .ssh dans le répertoire personnel de l'utilisateur, s'il n'existe pas.
[ram@client ~]$ mkdir ~/.ssh [ram@client ~]$ chmod 700 ~/.ssh
Modifiez le fichier authorized_keys.
[ram@client ~]$ vi ~/.ssh/authorized_keys
Sur la machine source, affichez le contenu du fichier id_rsa.pub à l'aide de la commande cat.
[raj@server ~]$ cat ~/.ssh/id_rsa.pub
Sortie : (Exemple)
Copiez le contenu et collez-le dans le fichier authorized_keys sur la destination et enregistrez-le.
Ensuite, mettez à jour l'autorisation du fichier.
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
Tester la connexion sans mot de passe
Accédez maintenant à la machine distante à l'aide de la commande ssh.
[raj@server ~]$ ssh [email protected]
Maintenant, vous devriez pouvoir accéder à la machine distante sans le mot de passe.
Conclusion
C'est tout. J'espère que vous êtes en mesure de configurer la connexion sans mot de passe SSH sur CentOS 8 / RHEL 8. Veuillez partager vos commentaires dans la section des commentaires.