Nous savons que le protocole ssh peut se connecter au serveur distant en saisissant le nom du compte et le mot de passe. Alors, puis-je me connecter directement sans saisir mon numéro de compte et mon mot de passe ? La réponse est oui, et dans le travail quotidien, ce besoin est également courant. Par exemple, si vous utilisez scp pour une sauvegarde hors site et que vous souhaitez écrire scp sur crontab, mais que vous ne pourrez certainement pas saisir le compte et le mot de passe dans crontab, vous devez alors vous connecter sans compte ni mot de passe.
ssh est un protocole de chiffrement asymétrique avec des clés publiques et privées. La clé publique est utilisée pour chiffrer les informations. Chaque hôte stockera les clés publiques des autres hôtes dans le fichier known_hosts du répertoire .ssh de son propre répertoire personnel. Si vous souhaitez vous libérer de compte et de mot de passe, le point clé est cette clé publique.
Supposons qu'il existe un serveur hôte SERVEUR et un client CLIENT. Le client souhaite se connecter au SERVEUR sans se connecter. Ensuite, ajoutez simplement la clé publique du client à la fin de ~/.ssh/authorized_keys sur la machine SERVEUR. Ce qui suit montre comment se connecter sans mot de passe dans deux situations :
Le client est un système Windows
Le client est un système Linux
Le client est un système Windows
La première étape consiste à générer une paire de clés secrètes. Ici, nous. utilisez l'outil git pour le générer Paire de clés secrètes (comment installer git sur un système Windows, vous pouvez le vérifier vous-même, c'est très simple, suivez simplement l'étape suivante).
ssh-keygen
Après avoir entré la commande ci-dessus dans le terminal git, il y aura une série de messages d'invite, entrez directement la touche ENTER (vous devez entrer ENTER trois fois au total). Après cela, vous pouvez voir la clé publique et la clé privée dans le répertoire $HOMT/.ssh/ Celle qui se termine par pub est la clé publique.
admin@LAPTOP-7P19B9SH MINGW64 ~/.ssh $ ll total 13 -rw-r--r-- 1 admin 197121 1679 5月 3 2019 id_rsa -rw-r--r-- 1 admin 197121 398 5月 3 2019 id_rsa.pub
Ensuite, téléchargez la clé publique sur le serveur, puis ajoutez les informations de clé publique à ~/.ssh/authorized_keys.
# cat id_rsa.pub >> .ssh/authorized_keys
Ce qui suit montre comment utiliser xshell pour vous connecter sans mot de passe
La première étape, entrez l'adresse IP de l'hôte distant
La deuxième étape, cliquez sur Authentification utilisateur et sélectionnez la méthode comme clé publique. Entrez ensuite le nom d'utilisateur, ici nous remplissons root. Enfin, sélectionnez la clé. Notez que vous devez sélectionner ici la clé privée, pas la clé publique.
Une fois ces deux étapes configurées, la connexion sans mot de passe est terminée.
Le client est un hôte Linux
La première étape consiste également à générer une paire de clés secrètes
# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): 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: SHA256:GCyx2cSYE6yR7xCuUVOF0Omvp5fEoxv0Y2wOQvMRB98 root@lijia The key's randomart image is: +---[RSA 2048]----+ | .*=Oo | | * OX.. | | o B=.* E | |. + o+ o | | ooooo. S | |.. +.+= | | . ++*o | | .o*+. | | o=. | +----[SHA256]-----+
La seconde L'étape consiste à transférer la clé publique produite vers une autre machine
# ssh-copy-id root@121.***.***.64 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" /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 root@121.196.12.64's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@121.***.***.64'" and check to make sure that only the key(s) you wanted were added.
La troisième étape consiste à vous connecter à l'hôte distant
# ssh root@121.196.12.64 Welcome to Alibaba Cloud Elastic Compute Service ! Activate the web console with: systemctl enable --now cockpit.socket Last login: Fri Nov 20 10:28:37 2020 from 111.38.123.86 # 免密码登录成功
Pour plus d'articles techniques connexes, veuillez visiter tutoriel système LinuxChronique !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!