chmod 对“身份验证被拒绝:所有权或模式错误”没有帮助

chmod 对“身份验证被拒绝:所有权或模式错误”没有帮助

前言:我相信我做了功课。我尝试检查相关文件的所有权/模式,但我仍然收到错误。

我正在尝试在 GNU/Linux 上启动 SFTP 服务器。我创建了一个名为 的新用户sftp_server,创建/home/sftp_server/.ssh并填充/home/sftp_server/.ssh/sshd_config了:

AuthorizedKeysFile /home/sftp_server/.ssh/authorized_keys
HostKey /home/sftp_server/.ssh/server_key
Subsystem       sftp internal-sftp

PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no

Port 2222
AddressFamily any
ListenAddress 0.0.0.0
ListenAddress ::

然后我将客户端的公钥添加到/home/sftp_server/.ssh/authorized_keys.

我将服务器运行为sftp_server

sftp_server@system ~> /usr/bin/sshd -f /home/sftp_server/.ssh/sshd_config -D -d

并且它成功启动

debug1: sshd version OpenSSH_8.4, OpenSSL 1.1.1i  8 Dec 2020
Server listening on 0.0.0.0 port 2222.

但是我尝试从客户端连接到该服务器

user@DESKTOP:~$ sftp -P 2222 192.168.0.102

失败(在服务器端):


Authentication refused: bad ownership or modes for file /home/sftp_server/.ssh/authorized_keys
debug1: restore_uid: (unprivileged)
Failed publickey for user from 192.168.0.103 port 64450 ssh2: ED25519 SHA256:...
Connection closed by authenticating user user 192.168.0.103 port 64450 [preauth]

更新: 登录也sftp_server没有帮助。

user@DESKTOP:~$ sftp -P 2222 [email protected]

服务器端失败并显示相同的错误消息。

这是一条服务器端消息,因此我假设服务器无法authorized_keys正确访问该文件。

现有问题

两者都建议我应该正确设置所有权/模式,例如:

$ sudo chmod 0700 /home/sftp_server/.ssh
$ sudo chmod 0600 /home/sftp_server/.ssh/authorized_keys

但我已经应用了这些。

[root@system user]# ls -al /home
drwxr-xr-x   7 sftp_server root        4096 Mar 24 15:07 sftp_server

[root@system user]# ls -al /home/sftp_server
drwxr-xr-x 7 sftp_server root       4096 Mar 24 15:07 .
drwxr-xr-x 6 root        root       4096 Nov 17  2018 ..
drwx------ 2 sftp_server sftp_users 4096 Mar 24 14:53 .ssh

[root@system user]# ls -al /home/sftp_server/.ssh
drwx------ 2 sftp_server sftp_users 4096 Mar 24 14:53 .
drwxr-xr-x 7 sftp_server root       4096 Mar 24 15:07 ..
-rw------- 1 sftp_server sftp_users  162 Mar 24 14:15 authorized_keys
-rw-r--r-- 1 sftp_server sftp_users  410 Mar 24 14:53 sshd_config

我在想

  • drwxr-xr-x【755】为了/home/sftp_server
  • drwx------(700) 为/home/sftp_server/.ssh
  • -rw-------(600) 为/home/sftp_server/.ssh/authorized_keys

是正确的模式,并且它们都已正确sftp_server设置为文件所有者。

这让我对bad ownership or modes for file错误消息感到困惑和沮丧。

我将不胜感激任何帮助或提示。谢谢!

答案1

您的 sftp 命令错误。应该是这样的:

sftp -P 2222 [email protected]

使用当前命令,您将使用 user 登录服务器user,该用户在服务器端不存在。

相关内容