工作需要用到多台Linux的机器,每次访问都需要输入密码。
使用证书登录,可以达到免密的效果。
配置步骤如下:
跳板机(操作的机子):
为当前用户生成ssh公钥。如果当前非目标用户请切换到目标用户(su 用户名)
ssh-keygen -t rsa
连续敲3次回车即可,生成跳板机的公钥和私钥。默认生成的文件在 ~/.ssh 中
拷贝公钥到目标机器上:访问用户可能无法用密码登录,所以这里还写了一个登录用户(root)
scp .ssh/id_rsa.pub 登录用户名@目标机IP:/home/访问用户名/.ssh/
之后需要输入登录用户名对应的密码
目标机:
将跳板机的公钥文件改名为authorized_keys
mv /home/访问用户名/.ssh/id_rsa.pub /home/访问用户名/.ssh/authorized_keys
配置sshd_config
vi /etc/ssh/sshd_config
开启证书登录:
找到如下几个字段,如果前面有#则去掉#,没有该字段就新增
(vi搜索:命令行输入/关键字,回车。按n跳转到下一个)
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
关闭密码登录(可选):
PasswordAuthentication no
配置完成后保存并退出,重启sshd服务
systemctl restart sshd
跳板机:
然后使用跳板机尝试ssh登录目标机
ssh 访问用户名@目标机IP
不需要密码登录上去即为正常。(按ctrl+D退出登录)