ssh免密登录
发布于 2022-04-18 18:00:55
实验环境:使用的是CentOS 7.6系统
我们经常用ssh来从客户机登录到服务器上,在输入密码的时候感觉很麻烦,特别是要在经常登录的情况下。有没有可以免输入密码的的办法呢?答案是:有的!
下面,有两台机器: 一台是ssh客户端机器(主机名是vultr); 一台是ssh服务端机器(主机名是iZj6c262htpobd1pfkqlqgZ,运行sshd服务)
首先,在客户端机器上,运行ssh-keygen命令生成公钥和私钥, 运行这个命令, 一直按回车键,用默认选项就可以了。
[root@vultr ~]# 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:kWSVyDrZkUf1h6Fw/g8aR2ghJ4jz/Bqlt3K/CUOvHP8 root@vultr.guest
The key's randomart image is:
+---[RSA 2048]----+
| oo**o= . |
| oo*.oB . o |
| Boo = + .|
| + +... o . |
| .++. . + |
| o.o. + o |
| ++.o .|
| o.o* . |
| oo.=oE |
+----[SHA256]-----+
这样就在~/.ssh目录上生成两个文件,一个是私钥文件id_rsa,另一个是公钥文件id_rsa.pub
[root@vultr ~]# cd .ssh
[root@vultr .ssh]# ls
id_rsa id_rsa.pub
然后,运行下面这个命令,输出公钥文件id_rsa.pub的内容
cat id_rsa.pub
复制输出的公钥,然后登录服务端机器。
在服务端机器上,将刚才复制的公钥保存到~/.ssh/authorized_keys文件中
[root@iZj6c262htpobd1pfkqlqgZ ~]# cd ~/.ssh
[root@iZj6c262htpobd1pfkqlqgZ .ssh]# vim authorized_keys # 编辑authorized_keys文件,将刚才复制的内容粘贴进来(如果原先有别的公钥,另起新的一行),然后保存
修改文件权限,增加安全性
[root@iZj6c262htpobd1pfkqlqgZ .ssh]# chmod 600 authorized_keys
重启服务端的sshd服务,使配置生效
[root@iZj6c262htpobd1pfkqlqgZ .ssh]# service sshd restart
然后,在客户端机器上,用ssh登录就不用输入密码,直接登录上了。

更新于 2025-11-09 11:18:41