也许我忽略了一些小细节,但由于我在服务器上看到了很多键,我感到有点困惑。
我用过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 密钥连接了!