WinSCP 和 PuTTY SSH(SFTP)无法使用公钥对 Windows OpenSSH 服务器进行身份验证

WinSCP 和 PuTTY SSH(SFTP)无法使用公钥对 Windows OpenSSH 服务器进行身份验证

也许我忽略了一些小细节,但由于我在服务器上看到了很多键,我感到有点困惑。

我用过WinSCP公钥认证设置指南用于公钥的 PuTTY 安装了解更多信息。

但是每次我想要登录服务器(Windows Server 2012)时,它都不会接受 PuTTY 私钥。

我已经生成了HOST 键在服务器上的 OpenSSH 文件夹中按要求 ( c:\Program Files\OpenSSH)。SSHD 服务正在运行并接受主机密钥,所有文件均可读取且无错误运行。第一次通过 WinSCP 登录时,我收到了主机密钥通知,正如预期的那样。

公钥存储在服务器上的文本文件中,authorized_keys.txt位置为:C:\Users\username\.ssh

为了演示目的,我使用免密码私钥在客户端上手动加载它,在PuTTY和WinSCP中,但它不起作用。服务器说不会接受钥匙

HOST密钥通过命令自行生成ssh-keygen.exe –A,PUBLIC密钥和PRIVATE密钥在PuTTYgen中同时生成。

有谁知道我在这里做错了什么?

编辑

这几乎变得不可能阅读,所以我归档了错误并发现了一个重复很多次的错误:

Couldn't create pid file "./sshd.pid": Permission denied

其他行仅在我登录时记录。

更新

经过进一步的研究,我发现这一页。最后有一个 Windows 公钥疑难解答部分。作者声称他的问题已经解决,但我的问题没有解决。我正在重新启动安装,但现在只使用管理员帐户。

答案1

不是authorized_keys.txt,但是authorized_keys

另外,如果你使用Microsoft 为 Windows 构建的 OpenSSH,确保只有相应的 Windows 帐户对该文件夹和文件具有写访问权限(如果您使用相应的帐户登录,则创建文件夹和文件,则默认访问级别是什么)。

WinSCP 指南中涵盖了所有这些内容在 Windows OpenSSH 服务器上设置 SSH 公钥认证。 也可以看看如何正确配置 Win32-OpenSSH 身份验证


附注:“主机密钥”与身份验证无关。所以不要对此感到困惑。请参阅有关 SSH 主机密钥的 WinSCP 文章

答案2

经过长时间的搜索、反复尝试,它现在可以正常工作了!

问题究竟造成了什么后果对我来说仍是一个谜,但出于纯粹的沮丧,我已将 .ssh 文件夹和 authorized_keys 的完全控制权交给 NT_service/sshd。

现在我可以使用我的 RSA 密钥连接了!

相关内容