环境

Windows 10 专业版 20H2 操作系统内部版本 19042.746
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5

安装

采用 Windows 10 自带的安装方式
系统 -> 应用 -> 可选功能 -> 添加功能 -> OpenSSh 服务器

配置

cmd -> ssh-keygen -> 一路回车或根据提示填写
一路回车:id_rsa 与 id_rsa.pub 将在"c:\Users或用户\User_Name或用户名\.ssh\"目录下

c:\Users或用户\User_Name或用户名\.ssh\

如果看不到以下目录:导航栏(正上方)->查看->勾选:隐藏的项目
如果改名后,双击文件,直接能用记事本打开:导航栏(正上方)->查看->勾选:文件扩展名->删除文件 .txt 后缀

  • 标准/普通用户

复制 id_rsa.pub 到"c:\Users或用户\User_Name或用户名\.ssh\"目录下,并改名"authorized_keys"

  • 隶属于 Administrators 组的管理员用户

1 复制 id_rsa.pub 到"c:\ProgramDatassh\"目录下,并改名"administrators_authorized_keys"
2 编辑 "C:\ProgramData\ssh\sshd_config"文件,在其中找到"#StrictModes yes",并在下行插入如下内容:

#StrictModes yes
StrictModes no

3 将 id_rsa 移动到 SSH 客户端"c:\Users或用户\User_Name或用户名\.ssh\"下,此处同样以 windows 为例。
无则创建。

重启服务并设置自启

以管理员身份运行 cmd

net stop sshd
net start sshd

安装 SSHD 服务后,默认不开机自启,设置开机自启
以管理员身份运行 cmd

sc config sshd start=auto

问题

错误 1067

启动 OpenSSH SSH Server SSHD 服务,报错 错误 1067。

解决

Permission denied

配置 SSH 证书 密钥 免密 登录 Windows 10,报错:Permission denied (publickey,keyboard-interactive).

解决

“StrictModes=yes”时,目录权限太过宽松则会导致此问题。具体可查看参考中 IBM 相关文档。
编辑 "C:\ProgramData\ssh\sshd_config"文件,在其中找到"#StrictModes yes",并在下行插入如下内容:

#StrictModes yes
StrictModes no

一直要求输入密码

配置 SSH 证书 密钥 免密 登录 Windows 10,一直要求输入密码。

解决

由于用户隶属于 Administrators 组的管理员用户,不能复制 id_rsa.pub 到"c:\Users或用户\User_Name或用户名\.ssh\"目录下,并改名"authorized_keys";
应复制 id_rsa.pub 改名"administrators_authorized_keys",并复制到"c:\ProgramData\ssh\"目录下。
且应该删除"c:\Users或用户\User_Name或用户名\.ssh\known_hosts"文件内与服务端 IP 相同的行。

另类的解决方案

编辑 "C:\ProgramData\ssh\sshd_config"文件,注释文件末尾的管理员配置参数,如下:

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

由于 Windows 上的 OpenSSH Server 区分了管理员和标准用户,不清楚这样,是否有问题。
注释后,隶属于 Administrators 组的管理员用户,也将使用"c:\Users或用户\User_Name或用户名\.ssh\authorized_keys"。

参考

github.com/PowerShell/Win32-OpenSSH/issues/1358
woshub.com/using-ssh-key-based-authentication-on-windows/
www.ibm.com/docs/en/was-liberty/zos?topic=system-avoiding-problems-ssh-in-collective
superuser.com/questions/1407020/logging-into-windows-10-openssh-server-with-administrator-account-and-public-key
superuser.com/questions/1445976/windows-ssh-server-refuses-key-based-authentication-from-client

最后修改:2021 年 08 月 24 日 03 : 37 PM
如果觉得文章帮助了您,您可以随意赞赏。