如何设置 unix 到 windows ssh 的密钥认证?

如何设置 unix 到 windows ssh 的密钥认证?

我想设置从 FreeBSD(不完全是 unix 系统,但在这种情况下它足够 unix)到 Windows 10 的无密码 SSH 连接。为此,我在 Windows 10 中添加了 OpenSSH 可选功能并运行了服务器。使用 SCP 命令确认可以访问它并且一切顺利,但它要求输入密码。如果是 unix 到 unix,我所要做的就是将公钥从源复制到目标。如果我在 unix 到 windows 的情况下执行相同操作,源(FreeBSD)会提供公钥,但没有更多信息,就会跳转到下一个身份验证方法。

密钥对是在 FreeBSD 上使用生成的ssh-keygen -t rsa(也尝试过ssh-keygen -t ed25519,结果相同),然后将 RSA 公钥复制到 Windows 10 用户(与 scp 命令中使用的用户相同).ssh/authorized_keys,该用户位于用户的主目录中。

使用 Putty Key Generator,我使用在源 (FreeBSD) 处生成的私钥生成了一个公钥。在 Windows 用户中使用这种格式的公钥.ssh/authorized_keys不会发生任何变化。

我进入 OpenSSH 的sshd_config_default文件并添加了以下行:

允许空密码 是

PermitRootLogin 是

StrictModes 没有

RSA身份验证 是

公钥认证 是

授权密钥文件 .ssh/authorized_keys

IgnoreUserKnownHosts 是

至于这个配置文件的语法,我不知道它应该如何,但据我所知,我只是像上面一样放入了这些行。配置文件中有示例,但它们被注释掉了。#尝试scp使用新配置(配置更改后重新启动服务器)得到的结果与之前的尝试相同。

我如何将在 FreeBSD 生成的公钥提供给 Windows 10,这样当我将scp文件从 FreeBSD 传输到 Windows 10 时,它不会要求输入密码?

答案1

我无法解决密钥认证不起作用的问题,但改变我获取文件的方式可以解决。我没有从 FreeBSD 发送文件,而是从 Windows 中拉取文件。为了使它正常工作,我在 Windows 上使用 OpenSSH 生成密钥,并将公钥复制到 FreeBSD 中,这样它就可以正常工作了。

(不要忘记chmod 644 authorized_keys

相关内容