linux服务器安装成功后,登录linux服务器的工具有很多中,例如:Xshell、SecureCRT等等。而我所服务的用户使用xshell工具来对linux服务器进行运维。
当使用xshell登录linux服务器时,xshell提供了三种身份验证方式:
1.Password(P)密码(W)
2.Public Key(U)用户密钥(K)[密码(H)]
3.Keyboard Interactive(I)
今天就重点为大家讲一讲,如何使用linux xshell产生public key实现免密登录linux服务器。
Xshell Version:7.0 宿主机:Windows 10
OS Version:RHEL7
1.打开xshell
2.点击菜单栏“工具(T)”-选择“新建用户密钥生产向导(W)”
3.在弹出的“新建用户密钥生产向导”-“生产密钥参数”页面,选择“密码类型(T)”为RSA,“密钥长度(L)”为2048位,点击“下一步”
4.在“生成公钥对”页面,点击“下一步”
5.在“用户密钥信息”页面,根据需要填写“密钥名称(K)”信息,以及填写“请输入给用户密钥加密的密码”,切记:此密码不是你所登录linux服务器时输入的用户名/密码的这个密码。也选项也可以选择留空,我们选择留空不输入密码,然后,点击“下一步”
6.在“公钥注册”页面,选择把公钥“保存为文件(S)...”
7.输入“文件名”,也可以使用默认文件名,这里我们选择使用默认文件名“id_rsa_2048.pub”,点击“保存”,这样id_rsa_2048.pub公钥就保存在了本地桌面
8.点击“完成”
9.在“用户密钥”页面,名称为:“id_rsa_2048”文件,其为对应的私钥,可以选择导出,也可以选择不导出,这里我们选择导出,这样的话,如果服务器允许远程登录,那么在网络允许的情况下,我们就可以随时随地带着它进行远程登录了
10.输入“文件名”,也可以使用默认文件名,这里我们选择使用默认文件名“id_rsa_2048”,点击“保存”,这样id_rsa_2048私钥就保存在了本地桌面
12.本地桌面上的公钥和私钥文件
1..以notepad++打开id_rsa_2048.pub文件
2.首次,以"用户名/密码"的方式登录linux服务器
3. 把id_rsa_2048.pub公钥拷贝至linux服务器
命令:
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvcPrWw8mf6Q2cxuqdP/2oEHJ4Iv5/CeDwszrv4VLnKWmLo5yR1oBRXYbP/8I5gju6uD159dLPFrHpxfFUuULXUl9cpvqgzkdTEETNKOPhYRWqbJwohTPrP1Uy95uRObec43wX0WDck/4w1ckFu58wmzixeMLLYtQ43lcJt6yeeACgFAVPTlxGvneJgUzvSG27vf58tOBz7ZhWOV8d+vgrZqmAAKYjX0jnIIdMprka225miVMYd/ltiU6rVhabxlw2e1SM09w3jh0QUcLm9KCK6c0Qh/7h8VAbd0Q8q2hbnw6+WJ+anSuWCtTSEm2ORRAbZU5J52arLHfObQ0/+fyFw==" >/root/.ssh/authorized_keys
[root@rhel77 ~]# echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvcPrWw8mf6Q2cxuqdP/2oEHJ4Iv5/CeDwszrv4VLnKWmLo5yR1oBRXYbP/8I5gju6uD159dLPFrHpxfFUuULXUl9cpvqgzkdTEETNKOPhYRWqbJwohTPrP1Uy95uRObec43wX0WDck/4w1ckFu58wmzixeMLLYtQ43lcJt6yeeACgFAVPTlxGvneJgUzvSG27vf58tOBz7ZhWOV8d+vgrZqmAAKYjX0jnIIdMprka225miVMYd/ltiU6rVhabxlw2e1SM09w3jh0QUcLm9KCK6c0Qh/7h8VAbd0Q8q2hbnw6+WJ+anSuWCtTSEm2ORRAbZU5J52arLHfObQ0/+fyFw==" >/root/.ssh/authorized_keys
[root@rhel77 ~]# cat !$
cat /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvcPrWw8mf6Q2cxuqdP/2oEHJ4Iv5/CeDwszrv4VLnKWmLo5yR1oBRXYbP/8I5gju6uD159dLPFrHpxfFUuULXUl9cpvqgzkdTEETNKOPhYRWqbJwohTPrP1Uy95uRObec43wX0WDck/4w1ckFu58wmzixeMLLYtQ43lcJt6yeeACgFAVPTlxGvneJgUzvSG27vf58tOBz7ZhWOV8d+vgrZqmAAKYjX0jnIIdMprka225miVMYd/ltiU6rVhabxlw2e1SM09w3jh0QUcLm9KCK6c0Qh/7h8VAbd0Q8q2hbnw6+WJ+anSuWCtTSEm2ORRAbZU5J52arLHfObQ0/+fyFw==
[root@rhel77 ~]#
如果authorized_keys文件中记录有其它的认证信息,使用追加的方式导入
命令:
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvcPrWw8mf6Q2cxuqdP/2oEHJ4Iv5/CeDwszrv4VLnKWmLo5yR1oBRXYbP/8I5gju6uD159dLPFrHpxfFUuULXUl9cpvqgzkdTEETNKOPhYRWqbJwohTPrP1Uy95uRObec43wX0WDck/4w1ckFu58wmzixeMLLYtQ43lcJt6yeeACgFAVPTlxGvneJgUzvSG27vf58tOBz7ZhWOV8d+vgrZqmAAKYjX0jnIIdMprka225miVMYd/ltiU6rVhabxlw2e1SM09w3jh0QUcLm9KCK6c0Qh/7h8VAbd0Q8q2hbnw6+WJ+anSuWCtTSEm2ORRAbZU5J52arLHfObQ0/+fyFw==" >>/root/.ssh/authorized_keys
4.检查目录及文件权限
-->/root目录权限为:700或550
-->ssh目录权限为:700
-->authorized_keys:认证文件。文件权限:600,不能更改
1.退出刚刚登录的linux服务器
2.输入ssh IP(E.g:ssh 192.168.10.143),这里根据实际输入你自己的服务器IP,然后回车
3.输入登录用户名称,点击“确定”
4.在“SSH用户身份验证”页面,选择“Public Key(U)”
5.点击“浏览”,会出现“用户密钥(U)...”和“文件(F)...”选项
-->“用户密钥(U)...” 这个是刚刚通过“向导”产生的,如果要使用它,选中它,点击“确定”
-->“文件(F)...”这个是刚刚导出到桌面上的“私钥”,如果要使用它,选中它,点击“打开”
“用户密钥(U)...”和“文件(F)...”两种所用“私钥”都是id_rsa_2048的信息,只不过,一个存在了本地,一个存在了xshell上。这里我们选择使用“文件(F)...”
6.由于我们在生产Public Key时,没有为密钥设置密码,此处留白,点击“确定”
7.服务器也就登录成功了
至此,也就实现了通过Linux Xshell生产public key实现免密登录linux服务器。
此方案也适用于CentOS7/8,RHEL8/9,RockyLinux9版本服务器通过Linux Xshell生产public key实现免密登录。
对于普通用户,这把id_rsa_2048.pub公钥信息拷贝至对应的/home/普通用户名称/.ssh/authorized_keys文件,保证目录及文件权限符合要求(参考2.2节step4),也可以实现免密登录。
如果一切设定好后,通过public key实现免密登录报错,可以查看/etc/ssh/sshd_config文件,此参数是否启用,如果没有,启用它,重启ssh(E.g(RHEL7):systemctl restart sshd),再去验证。
PubkeyAuthentication yes
创作不易,如果对你有所帮助或喜欢,请一键三连!
谢谢!