在 Windows 10 1809 上,我启用了内置 SSH 服务器并对其进行了配置。
在另一台机器上,我使用 WinSCP 和 PuTTy 生成器来生成身份验证密钥。我复制了公钥部分并将其附加到.ssh\authorized_keys
我的 SSH 服务器用户的文件中。我根据需要将文件权限固定给我的用户,即登录用户,用于密钥文件。
在客户端计算机上,我使用 .PPK 私钥和 WinSCP 尝试连接到与我的服务器的 SFTP 会话,但我收到一条消息,表明服务器拒绝了我选择的密钥。
我可以使用密码进行身份验证,但密钥对无效。挖掘sshd
服务器上生成的日志,我看到了:
10200 2019-06-07 01:38:16.376 debug1: attempt 1 failures 0 [preauth]
10200 2019-06-07 01:38:16.376 debug2: input_userauth_request: try method publickey [preauth]
10200 2019-06-07 01:38:16.376 debug1: userauth_pubkey: test pkalg ssh-rsa pkblob RSA SHA256:B6s0omPbz6HJB2cIZf3+5MKHU42wp+JfOTyAM+EVqoY [preauth]
10200 2019-06-07 01:38:16.376 debug2: userauth_pubkey: disabled because of invalid user [preauth]
Run Code Online (Sandbox Code Playgroud)
我不确定这里发生了什么,如果这就是拒绝连接的原因。防火墙不会成为问题,因为我能够使用密码身份验证登录到服务器。客户端机器和 WinScp 在服务器上被识别,只是服务器拒绝提供的密钥。
PuTTy 生成的密钥(或用公钥复制的密钥内容)是否在任何地方都不支持?没有与密钥相关的密码短语,但我认为这不应该是一个问题。
服务器机器上只有一个用户,即登录用户。该sshd
服务正在LOCAL SYSTEM
帐户下运行。如果它在用户帐户下运行(我尝试过,但该服务根本没有启动,事件日志抱怨缺少特权......)
编辑 - …
OpenSSH for Windows
我想更新on的预安装版本Windows 1903
,因为该版本7.2p1
存在一些问题,据报道这些问题已在v 8.0.0.0
.
我按照更新 OpenSSH for Windows上提供的指南和链接进行操作 ,随后进行了 Powershell 更新。
然而,当ssh -V
在 Powershell 中输入时,我得到的是,,
OpenSSH_for_Windows_7.7p1
而不是8.0.0.0
我所期望的。OpenSSH
我检查了环境变量,它们都指向Program Files
. 早期版本曾在不同的地方,但现在已经不存在了。
当我尝试sshd
安装服务的文件版本时,我得到8.0.0.0
,但ssh -V
仍然返回7.7p1
。我应该担心这个版本不匹配吗?