Linux Xshell配置public key实现免密登录linux服务器

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服务器。

1.测试环境

Xshell Version:7.0        宿主机:Windows 10

OS Version:RHEL7

2.实施部署

2.1.xshell产生public key

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私钥就保存在了本地桌面

11.点击“关闭”,关闭“用户密钥”页面

12.本地桌面上的公钥和私钥文件

2.2.拷贝id_rsa_2048.pub公钥信息至linux服务器

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,不能更改

2.3.免密登录认证

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),也可以实现免密登录。

2.4.QA

如果一切设定好后,通过public key实现免密登录报错,可以查看/etc/ssh/sshd_config文件,此参数是否启用,如果没有,启用它,重启ssh(E.g(RHEL7):systemctl restart sshd),再去验证。

PubkeyAuthentication yes

写在最后:

创作不易,如果对你有所帮助或喜欢,请一键三连!

谢谢!

猜你喜欢

转载自blog.csdn.net/z19861216/article/details/131246755