pubkey登录到Windows远程主机(win11)

转自 https://zhuanlan.zhihu.com/p/404179039


添加本地pubkey到远程authorized_keys文件之后
需要继续执行如下操作


以下是windows中特有的操作

更改authorized_keys文件权限,不更改则无法通过密钥登录

远程通过ACL更改文件权限

ssh --% user1@ip icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
在服务器端则可以通过以下命令修改,注意需要管理员权限。

在服务器端修改authorized_keys文件权限

icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
在Windows OpenSSH中,默认的授权密钥存放位置为ProgramData\ssh\administrators_authorized_keys,此位置对应为管理用户权限。因此需要修改默认授权文件位置。通过文本编辑器(推荐vscode)打开ProgramData\ssh\sshd_config,修改以下条目

允许公钥授权访问,确保条目不被注释

PubkeyAuthentication yes

授权文件存放位置,确保条目不被注释

AuthorizedKeysFile .ssh/authorized_keys

可选,关闭密码登录,提高安全性

PasswordAuthentication no

注释掉默认授权文件位置,确保以下条目被注释

#Match Group administrators
#AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

注意修改sshd_config需要管理员权限,修改完成后保存并推出。

在PowerShell(管理员)中重启sshd服务

重启sshd,需要管理员权限

Restart-Service sshd
至此可以尽情享受windows服务器带来的各种不便了!enjoy!!!

posted @ 2022-04-14 14:47  feipeng8848  阅读(355)  评论(0编辑  收藏  举报