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
联系作者