仅 sftp 帐户:通过 putty/winscp 访问不起作用

仅 sftp 帐户:通过 putty/winscp 访问不起作用

几个月前我建立了一个 sftp 帐户。

我大致遵循了这个指南:https://wiki.archlinux.org/index.php/SFTP_chroot

可以从 Linux 访问。

现在有人想通过 WinScP 访问 sftp 帐户。

我根据这些文档进行了操作:https://winscp.net/eng/docs/guide_public_key

我通过 WinSCP 创建了一个公钥/私钥对,并使用以下命令为 authorized_keys 文件创建了公钥:

puttygen -O public-openssh -o foo.pub foo.ppk

我像往常一样将 foo.pub 行添加到 ~modsftp/.ssh/authorized_keys。

从 Linux 进行无密码访问可以实现,但通过 putty/winscp 则不行:

===> psftp -i foo.ppk modsftp@remote-host
Using username "modsftp".
Server refused our key
Using keyboard-interactive authentication.
Password: 

在 ssh 服务器上我只看到这一行:

sshd[26281]: Connection closed by 10.111.44.33 [preauth]

我不知道为什么它可以通过 openssh 命令行工具工作,但却不能通过 putty/winscp 工作。

答案1

问题已解决:PEBCAK(椅子和键盘之间存在问题)。

通过 openssh 工具访问可以成功,因为使用了我的 ssh-agent 而不是-i foo命令行参数 :-)

在这种情况下,将公钥添加到 ~modsftp/.ssh/authorized_keys 是无用的。

如果我像这样禁用 ssh-agent(将 SSH_AUTH_SOCK 设置为空字符串),它对 openssh 工具也不起作用:

SSH_AUTH_SOCK= sftp -i foo modsftp@remote-host

我在 sshd_config 中打开LogLevel DEBUG并在日志文件中看到了该问题:

sshd[30819]: debug1: matching key found: file /etc/ssh/authorized_keys/modsftp, line 1

BINGO:sftp-only 设置与普通 ssh 帐户不同。authorized_keys 存储在不同的文件中。

问题解决了。我希望这个问题+答案能够帮助其他遇到类似问题的人。

相关内容