使用密码登录,每次都必须输入密码,非常麻烦。好在SSH还提供了公钥登录,可以省去输入密码的步骤。
所谓”公钥登录”,原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
1.生成公私钥对
# cd
# ssh-keygen
注意:生成的公私钥的用户名需要一致,建议在云主机上直接生成。
2.将公钥导入authorized_keys文件,并将私钥保存到本地计算机
# cat id_rsa.pub >>authorized_keys
# cat authorized_keys
将私钥拿到本地(scp命令或者xfpt拿到本地) 。
注意:公钥添加到authorized_keys文件后,且私钥已成功获取到本地后,删除服务器端公私钥 ,私钥一定要妥善保管。
3.修改ssh配置文件
# vim /etc/ssh/sshd_config
如下几个配置项决定远程登录的方式:
Port 22 //远程登录端口,建议不使用22端口
PubkeyAuthentication yes // 授权公钥登录
AuthorizedKeysFile .ssh/authorized_keys // 授权文件路径
PasswordAuthentication yes // 密码授权
UsePAM yes // 密码授权(redhat系列无效)
建议不使用22端口
配置密码和公私钥同时登录(不推荐)(有注释的取消注释,值改成如下值)
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
UsePAM yes
只配置公钥登录
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
UsePAM no
4.重启sshd服务
// centos系统
# systemctl restart sshd.service
// ubuntu系统
# /etc/init.d/sshd restart
xshell登录
linux下ssh远程登录
权限不修改成600可能会导致登录失败
# chmod 600 id_rsa
# ssh root@123.207.126.144 -p22 -i id_rsa
原文链接:https://blog.csdn.net/lynnyq/article/details/79109992
上一篇:ssh远程登录命令加密,ssh客户端连接服务器的秘钥认证
下一篇:没有了