我的 Ubuntu 服务器上有两个用户:
- user1(home:/home/user1-由user1拥有)具有
sudo
权限 - user2(home:/opt/apps - 不属于 user2)仅用于
sftpd
。
我禁用了密码登录,只通过密钥对登录。我生成了两个不同的密钥对,每个用户一个。我将公钥存储在/etc/ssh/authorized_keys/user1
和中/etc/ssh/authorized_keys/user2
。文件user1
和user2
归用户所有。chmod
目录的目录authorized_keys
为 700,密钥文件的目录为 600。
我的sshd_config
样子如下:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
与 user1 的连接很顺利,但我根本无法与 user2 连接。使用 FileZilla 时,我收到以下错误:
错误:断开连接:没有可用的受支持的身份验证方法(服务器发送:公钥)
尽管 FileZilla 向服务器发送了正确的私钥。但
使用 FileZilla 与 user1 一起使用时一切正常。
我检查了日志。首先我看到了以下消息:
Sep 1 20:06:55 cloud4298846 sshd[12727]: User Minecraft from *MY_IP* not allowed because not listed in AllowUsers
Sep 1 20:06:55 cloud4298846 sshd[12727]: input_userauth_request: invalid user Minecraft [preauth]
Sep 1 20:06:55 cloud4298846 sshd[12727]: error: Received disconnect from *MY_IP* port 50117:14: No supported authentication methods available [preauth]
Sep 1 20:06:55 cloud4298846 sshd[12727]: Disconnected from *MY_IP* port 50117 [preauth]
因此我在 /etc/ssh/sshd.config 中将 Minecraft 写入允许的用户
不,我收到了这条消息:
Sep 2 19:01:54 cloud4298846 sshd[15115]: error: Received disconnect from *MY_IP* port 53711:14: No supported authentication methods available [preauth]
Sep 2 19:01:54 cloud4298846 sshd[15115]: Disconnected from *MY_IP* port 53711 [preauth]
这基本上和我在 FileZilla 中收到的消息相同,但我不明白为什么。