我在 Synology NAS 上使用 DSM 6 附带的 OpenSSH 6.8 作为服务器,在 Arch Notebook 上使用 OpenSSH 7.3p1 作为客户端。我可以admin
通过密码以默认用户身份登录,但不能通过密钥登录,我不知道为什么。
奇怪的是:服务器似乎接受了我的公钥,但仍然推迟了它?
...
debug1: userauth-request for user admin service ssh-connection method publickey [preauth]
debug1: attempt 1 failures 0 [preauth]
debug1: test whether pkalg/pkblob are acceptable [preauth]
debug1: temporarily_use_uid: 1024/100 (e=0/0)
debug1: trying public key file /var/services/homes/admin/.ssh/authorized_keys
debug1: fd 5 clearing O_NONBLOCK
debug1: matching key found: file /var/services/homes/admin/.ssh/authorized_keys, line 1 RSA SHA256:Kq+mYIESxPced3WZ0/GXkKeYxzn5aLI8P0S8MoVPll4
debug1: restore_uid: 0/0
Postponed publickey for admin from <client IP> port 43226 ssh2 [preauth]
...
我已经尝试重启两台机器和sshd
,并且几乎取消了用户 admin 主文件夹及其目录的所有可能的访问权限.ssh
。但这似乎不是问题所在。这里出了什么问题?
任何想法都非常感谢!提前致谢,
Lukas
编辑:客户端探测密钥后提示:“代理拒绝操作”:
debug1: Offering RSA public key: /home/client/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 60
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug2: input_userauth_pk_ok: fp SHA256:Kq+m***
debug3: sign_and_send_pubkey: RSA SHA256:Kq+m***
sign_and_send_pubkey: signing failed: agent refused operation
此外,我还上传了详细客户端和服务器会话的完整输出这里。
答案1
这很可能是服务器上密钥文件权限的问题。请确保您的.ssh
文件夹、其中的文件以及.ssh
文件夹所在的主目录具有限制性权限。如果这些权限过于宽松,OpenSSH 服务器会拒绝密钥操作。这意味着,超出范围的任何操作700
通常都会被拒绝。
如果权限不正确,OpenSSH 服务器会打印警告,但仅限于调试级别 3,因此它们不会出现在正常输出或正常调试模式下。此外,权限警告仅在有人尝试连接时出现。运行sshd -D -ddd -e
以启用第三级调试并让 OpenSSH 打印有关密钥文件权限的警告。确保在运行之前停止 OpenSSH 服务器。
OpenSSH 服务器随后将等待任何传入连接,但不会进入后台,因此所有输出都将打印到stdout
。因此,您可以在尝试从其中一个客户端建立 SSH 连接时观察 OpenSSH 服务器。如果您在尝试登录时立即看到权限警告,请尝试以下命令来修复您的权限:
chmod 700 ~
chmod 700 -R ~/.ssh
~
您想要通过 ssh 访问的用户的主目录在哪里。
然后重新启动 OpenSSH 服务器并查看问题是否已修复:)
答案2
debug1: Server accepts key: pkalg ssh-rsa blen 279
这只是为了匹配钥匙的测试
sign_and_send_pubkey: signing failed: agent refused operation
为了获得访问权限,您需要证明拥有私钥,但您ssh-agent
失败了,因此被拒绝。
你的是什么ssh-agent
?它的钥匙在哪里?