我一直在尝试为我的 Windows 10 专业版媒体服务器配置 OpenSSH。我可以正常使用密码登录,但我正在尝试设置公钥身份验证。
我已经编辑了我的sshd_config
文件以允许公钥身份验证。客户端和服务器正在运行ssh-agent
。C:\ProgramData\ssh\administrators_authorized_keys
由于该帐户是管理员帐户,因此我已将我的 SSH 公钥从客户端计算机复制并粘贴到该文件中。对上述文件的权限设置与目录中的其他关键文件相同,即 SYSTEM 和 Administrators 都具有完全控制权,没有列出其他人。
我添加了调试日志,当我尝试使用公钥连接时,我得到了这个:
debug1: userauth-request for user uther service ssh-connection method none [preauth]
debug1: attempt 0 failures 0 [preauth]
debug1: user uther matched group list administrators at line 84
debug1: userauth-request for user uther service ssh-connection method publickey [preauth]
debug1: attempt 1 failures 0 [preauth]
debug1: userauth_pubkey: test pkalg ssh-rsa pkblob RSA SHA256:jcQNaVuxvH90SIh4zu8xduBqJaav1WFQJIov3hiFSFM [preauth]
debug1: trying public key file C:\\ProgramData\\ssh\\administrators_authorized_keys
Failed publickey for uther from 10.0.0.24 port 60432 ssh2: RSA SHA256:jcQNaVuxvH90SIh4zu8xduBqJaav1WFQJIov3hiFSFM
debug1: userauth-request for user uther service ssh-connection method keyboard-interactive [preauth]
我不知道如何解决这个问题。我使用远程桌面将客户端上 id_rsa.pub 中的文本剪切并粘贴到管理员授权密钥文件中的服务器。似乎没有权限错误,我无法弄清楚为什么它不会进行身份验证。
我将不胜感激任何人可以提供的帮助以使这项工作正常进行。这并不重要,SSH 不会暴露在 Internet 上,但我使用的一些脚本在使用公钥身份验证时会做得更好。
我还应该注意,当我使用我的 Microsoft 帐户设置服务器时,我一直想知道这是否与它有关,所以我可能会尝试设置一个直接的本地帐户,看看是否可以解决它。
编辑:我试图创建一个本地用户帐户,但我不能。即使我尝试使用control userpasswords2
该框,但创建帐户的所有选项都被禁用。我想这一定是因为我有 Windows 10 专业版而不是更高和最昂贵的版本。
我终于通过注释掉以下行来解决问题:
然后我将授权密钥放入普通文件中
~\.ssh\authorized_keys
,就像我使用 ssh 的任何其他时间一样。当我进行初步研究并打折时,我发现这对很多人不起作用。在 PowerShell 中使用此命令序列来更正
administrators_authorized_keys