xshell密钥登录linux

欢迎大家加扣群交流 55134079

xshell密钥登录linux(这种验证方式比较安全)

首先生成密钥:工具→新建用户生成密钥导向

密钥类型:RSA   密钥长度:2048,下一步


提示你正在生成公钥和私钥对,下一步


这个就是生成的公钥,保存起来,待会要用,点击完成。


你的私钥,点击关闭



接下来以用户名密码的方式先登录系统,做如下配置:

  1. #先确保你在用户家目录里,使用pwd查看,我是root登录,所以在/root下。
  2. #再一个就是查看你的家目录下有没有.ssh隐藏目录,有的话直接进入,没有的话新建一个。
  3.  
  4. mkdir .ssh
  5. #新建.ssh目录
  6.  
  7. chmod 700 .ssh
  8. #赋予.ssh目录700权限
  9.  
  10. cd .ssh
  11. #进入.ssh目录
  12.  
  13. touch authorized_keys
  14. #新建一个authorized_keys文件
  15.  
  16. chmod 600 authorized_keys
  17. #赋予authorized_keys文件600权限
  18.  
  19. vi authorized_keys
  20. #使用vi编辑它

按i键进入编辑模式,把刚才Xshell生成的公钥黏贴进去,保存并退出。

  1. vi /etc/ssh/sshd_config
  2. #编辑sshd的配置文件
  3.  
  4. 把下面两句前面的#号去掉
  5. PubkeyAuthentication yes
  6. AuthorizedKeysFile.ssh/authorized_keys
  7.  
  8. yes改成no
  9. PasswordAuthenticationno
  10.  
  11. 最后保存并退出。
  12.  
  13. service sshd restart
  14. #重启sshd服务
  15.  
  16. PS:如果你想禁止root远程登录,就把#PermitRootLogin yes这句去掉#号改成no即可

修改sshd_config配置文件

vim /etc/ssh/sshd_config (和上面一样)

1
2
3
4
PubkeyAuthentication yes     #启用公告密钥配对认证方式 
AuthorizedKeysFile .ssh / authorized_keys      #设定PublicKey文件路径
RSAAuthentication yes   #允许RSA密钥
PasswordAuthentication no  #禁止密码验证登录,如果启用的话,RSA认证登录就没有意义了

重新加载sshd服务: /etc/init.d/sshd restart 



open 新建一个连接,输入主机ip后:


这样的话就直接每次登陆了

也可以新建一个连接,输入ip,确定,弹出这样会话框:



就OK


注: 

私钥,在Xshell里也叫用户密钥 

公钥,在Xshell里也叫主机密钥

“所选的用户密钥未在远程主机上注册。请再试一次。”在登陆是xshell报错,检查服务器的selinux及iptables是否开启。


关闭防火墙(两种防火墙):不关闭密钥是不能够成功的

selinux  netfilter(iptables)对应命令为后者 

解决办法:

先关闭selinux:  setenforce 0  此命令只能临时关闭

永久关闭需要更改配置:vi /etc/selinux/config


之前关闭过临时这里就关闭了,不然得重启



关闭netfilter:   iptables -F  这个也是临时的清除,这样服务器重启后还得加载

service iptables save  这个命令保存到配置文件中,更改了防火墙规则


猜你喜欢

转载自blog.csdn.net/hombo125/article/details/81007478