Windows服务器的ssh用密钥免密登录问题
核心问题
Match Group administrators
未注释,导致 administrators
组用户用 C:\ProgramData\ssh\administrators_authorized_keys
,忽略了 .ssh/authorized_keys
。
解决
- 打开
C:\ProgramData\ssh\sshd_config
。 - 改成:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys # Match Group administrators # AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
- 重启服务:
Restart-Service sshd
- 检查权限:
icacls "C:\Users\Administrator\.ssh\authorized_keys" /inheritance:d icacls "C:\Users\Administrator\.ssh\authorized_keys" /grant:r "Administrator:F"
测试
ssh -i C:\path\to\id_rsa Administrator@服务器IP
参考链接
https://zhuanlan.zhihu.com/p/592296884
https://stackoverflow.com/questions/16212816/setting-up-openssh-for-windows-using-public-key-authentication