SSH免密登录(公钥登录)到win10(解决authorized_keys无效的问题)

问题分析

正常情况下,把客户端的公钥(来自id_rsa.pub文件)写入到服务器的授权公钥文件(~/.ssh/authorized_keys)中,即可实现免密登录。当然,我们也可以简单地借助ssh-copy-id命令来实现这个功能。

但是,如果服务器是Windows的,上述方法可能不会奏效。原因是,对于Windows管理员用户,公钥默认不在~/.ssh/authorized_keys下,这点和Linux、macOS不一样。

解决方案

编辑C:\ProgramData\ssh\sshd_config文件,删除底部的如下配置:

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

然后,重启windows的ssh服务(OpenSSH SSH Server服务)。

最后,在windows服务器的~/.ssh/authorized_keys文件里,写入客户端的公钥(来自id_rsa.pub文件)。此时,你就可以SSH免密登录到windows了。

注意事项

  • 本文针对的是windows版本的ssh服务(OpenSSH SSH Server服务),不是wsl的sshd服务。
  • 我只在win10上做过测试,其他Windows版本,请自行验证。
  • 如果您要登录的是windows的非管理员用户,默认情况下就是支持免密的,不需要修改sshd_config文件。

本文为kyleblog.cn原创,转载请注明出处:https://www.kyleblog.cn/posts/win10_ssh_login

发布日期:2022-11-06 联系作者