利用shell秘钥登录服务器

------------恢复内容开始------------

一、点击Xshell菜单栏的工具,选择新建用户密钥生成向导,进行密钥对生成操作。

注意选择长度为2048位秘钥;

二、修改sshd的配置文件,启用密钥认证登录,同时关闭密码认证,并重启服务

三、进入家目录的.ssh目录下,将生成的公钥拷贝到authorized_keys文件中,并赋予600权限

1、公钥的位置

2、将公钥拷贝到authorized_keys文件

另外特别注意:

上传公钥至服务器之后要修改 

A - 将我们生成的webuse.pub公钥文件上传到/webuse/.ssh文件夹下面(如果没有我们需要创建),然后我们需要将webuse.pub重命名为authorized_keys (千万写敲错)并且用chmod 600 authorized_keys设置权限。

B - 找到/etc/ssh/sshd_config ,把RSAAuthentication和PubkeyAuthentication两行前面的#注释去掉。(这是重点)

C - 重启SSHD服务

关闭远程linux防火墙,千万不要漏掉这一部分;(哥们没有设置,照样成功!)
永久关闭selinux
 #vi /etc/selinux/config        #修改selinux的配置文件
更改“SELINUX=enforcing”为 SELINUX=disabled  保存退出。
[root@localhost ~]# /usr/sbin/sestatus -v        #查看selinux的状态命令
SELinux status:                disabled
关闭防火墙
[root@localhost ~]# iptables -F                                #清空防火墙配置
[root@localhost ~]# /etc/init.d/iptables save          #清空防火墙配置后,记得保存
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:    [确定]

四、进行登录

注:

错误提示:

xshell登录时,提示“所选的用户密钥未在远程主机上注册 ”

跟踪

登陆目标机器,查看sshd的日志信息。日志信息目录为,/var/log/secure
你会发现如下字样的日志信息。
Jul 22 14:20:33 v138020.go sshd[4917]: Authentication refused: bad ownership or modes for directory /home/webuser

原因

sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600

解决方法

检测目录权限,把不符合要求的按要求设置权限即可。

我的网站目录也在当前用户家目录下  单独设置权限即可

版权声明:本文为CSDN博主「幸福丶如此」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_37886429/article/details/78422914

------------恢复内容结束------------

一、点击Xshell菜单栏的工具,选择新建用户密钥生成向导,进行密钥对生成操作。

注意选择长度为2048位秘钥;

二、修改sshd的配置文件,启用密钥认证登录,同时关闭密码认证,并重启服务

三、进入家目录的.ssh目录下,将生成的公钥拷贝到authorized_keys文件中,并赋予600权限

1、公钥的位置

2、将公钥拷贝到authorized_keys文件

另外特别注意:

上传公钥至服务器之后要修改 

A - 将我们生成的webuse.pub公钥文件上传到/webuse/.ssh文件夹下面(如果没有我们需要创建),然后我们需要将webuse.pub重命名为authorized_keys (千万写敲错)并且用chmod 600 authorized_keys设置权限。

B - 找到/etc/ssh/sshd_config ,把RSAAuthentication和PubkeyAuthentication两行前面的#注释去掉。(这是重点)

C - 重启SSHD服务

关闭远程linux防火墙,千万不要漏掉这一部分;(哥们没有设置,照样成功!)
永久关闭selinux
 #vi /etc/selinux/config        #修改selinux的配置文件
更改“SELINUX=enforcing”为 SELINUX=disabled  保存退出。
[root@localhost ~]# /usr/sbin/sestatus -v        #查看selinux的状态命令
SELinux status:                disabled
关闭防火墙
[root@localhost ~]# iptables -F                                #清空防火墙配置
[root@localhost ~]# /etc/init.d/iptables save          #清空防火墙配置后,记得保存
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:    [确定]

四、进行登录

注:

错误提示:

xshell登录时,提示“所选的用户密钥未在远程主机上注册 ”

跟踪

登陆目标机器,查看sshd的日志信息。日志信息目录为,/var/log/secure
你会发现如下字样的日志信息。
Jul 22 14:20:33 v138020.go sshd[4917]: Authentication refused: bad ownership or modes for directory /home/webuser

原因

sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600

解决方法

检测目录权限,把不符合要求的按要求设置权限即可。

我的网站目录也在当前用户家目录下  单独设置权限即可

版权声明:本文为CSDN博主「幸福丶如此」及wuling129的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_37886429/article/details/78422914及https://www.cnblogs.com/wuling129/p/4665001.html

猜你喜欢

转载自www.cnblogs.com/gangzai369/p/12060055.html