在 Google GCP 上的 Ubuntu 16.04 系统上,我需要创建一个新用户并允许其他用户使用他们当前的 SSH 密钥hello
以用户身份通过 SSH 访问系统。hello
以下是我将我的 SSH 公钥添加到 的hello
步骤authorized_keys
:
sudo useradd -m hello -s /bin/bash
sudo mkdir /home/hello/.ssh
sudo chown hello:hello -R /home/hello
sudo chmod 777 /home/hello/.ssh
sudo cat ~/.ssh/authorized_keys >> /home/hello/.ssh/authorized_keys
sudo chmod 700 /home/hello/.ssh/
sudo chmod 600 /home/hello/.ssh/authorized_keys
问题:当我尝试以用户身份通过 SSH 连接到服务器时hello
,出现错误
已断开连接:没有可用的受支持的身份验证方法(服务器发送了公钥)
/var/log/auth.log
包含
11 月 4 日 17:37:05 你好 sshd[27298]: 错误:已从 174.63.124.9 端口 62346:14 断开连接:没有可用的受支持的身份验证方法 [preauth] 11 月 4 日 17:37:05 你好 sshd[27298]: 已从 174.63.124.9 端口 62346 断开连接 [preauth]
出了什么问题?谢谢!
答案1
您需要在文件创建后更改其所有者authorized_keys
,因为它将归运行脚本的用户所有。
将其作为最后一行添加到脚本中即可解决问题。
sudo chown hello:hello /home/hello/.ssh/authorized_keys
答案2
也许在服务器站点中这个用户“hello”被列入了黑名单
尝试这个:
grep **AllowUsers** /etc/ssh/sshd_config
或这个:
grep **DenyUsers** /etc/ssh/sshd_config
AllowGroups
也尝试与团体一起尝试 DenyGroups
。
答案3
检查 /home 目录权限。它应该是
drwxr-xr-x. 9 root root 113 Jun 28 22:57 home
然后是你的主目录详细信息:
drwxr----- 5 user group 124 May 18 17:00 User drwx------ 2 user group 29 May 18 12:05 .ssh -rw------- 1 user group 2235 Jun 28 23:09 authorized_keys
日志中的错误消息
/var/log/auth.log> sshd[22565]: 错误: 收到来自 XXXX 的断开连接: 14: 没有可用的受支持的身份验证方法 [preauth]
在客户端
ssh [email protected]
Permission denied (publickey). ssh -vvv [email protected]
... debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (publickey).
在服务器端
service sshd stop
运行 sshd 调试模式:
/usr/sbin/sshd -ddd
... debug1: trying public key file /home/USER/.ssh/authorized_keys debug1: Could not open authorized keys '/home/USER/.ssh/authorized_keys': Permission denied ...