Win11 启用 OpenSSH Server
在 Unix 系统(如 Ubuntu)中启用 OpenSSH Server 是很容易的,在 Windows 上启用要稍微复杂一些。本文记录一下在 Windows 上启用 OpenSSH Server 的过程和可能遇到的问题。
添加 OpenSSH Server 功能
Win11 预装了 OpenSSH Client,但没有预装 OpenSSH Server,因此必须首先安装这个功能。根据 https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse 来添加 OpenSSH Server 功能。这篇教程虽然是针对 Windows 服务器版撰写的,但对 Windows 11 专业版同样可用。
注意,在添加功能之后还要在服务中启用它。注意设置开机自动启动。
下面是我的电脑上没有任何连接(空闲)时的 sshd 服务:
本机连接测试
ssh [用户名]@localhost
如果看到以下内容:
The authenticity of host 'localhost' can't be established.
ECDSA key fingerprint is SHA256:(<a large string>).
Are you sure you want to continue connecting (yes/no)?
说明 SSH 服务器已经运行起来。
设置防火墙
Windows 默认的防火墙规则可能不允许来自局域网的设备连接本机的 SSH 服务器。在 Windows 安全中心(即 Windows Defender)中找到“防火墙和网络保护”,点击进入,找到“高级设置”,点击进入,将弹出一个新窗口。
在左侧点击“入站规则”,在列表中找到“OpenSSH SSH Server (sshd)”,如果它没有启用(左侧没有绿色对勾图标),那么右键启用它。这条规则是在前面添加 OpenSSH Server 功能时自动创建的,我这里默认只允许了“公用”网络,发现局域网里仍然连接不上,于是在属性中勾选了“专用”网络,就可以连接了。
解决 ping 不通的问题
另外你可能发现用局域网的其他设备 ping 本机是不通的(超时),这是因为 Windows 防火墙默认禁用了 ICMP。要解决这个问题,仍然是在上面的防火墙规则窗口中找到“”,启用这些规则。我不清楚“专用”“公用””域“之间的区别,因此把下图的 4 个规则全部启用了,启用之后可以 ping 通。
当然,ping 是否接通和 SSH 没有关系。这一步不是必须的。
解决公钥登录方式不起作用的问题
Windows 的 OpenSSH Server 的默认配置中,authorized_keys
文件的位置和 Unix 系统有所不同。这可能会导致按照 Unix 方法配置公钥登录(即将登录设备的公钥放进 ~/.ssh/authorized_keys
中)后,尝试登录仍然被要求提供密码。为了解决这一问题,可以修改 OpenSSH Server 的配置文件(位置:C:\ProgramData\ssh\sshd_config
),注释掉下面这两行(通常位于该文件的最后):
# Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
然后重启(需要在管理员权限的终端中执行)sshd:
Restart-Service sshd
修改登录 Shell
Windows 的 OpenSSH Server 的默认登录 Shell 是 CMD(甚至不是 PowerShell)。如果希望修改,需要以管理员权限打开 PowerShell,执行
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\Git\bin\bash.exe" -PropertyType String -Force
此处将登录 Shell 改成了 Git Bash。如果希望改成其他 Shell,可以修改其中的 "C:\Program Files\Git\bin\bash.exe"
部分。我改成了 NuShell,体验良好。
参考
https://blog.cloudorz.com/post/configure-openssh-server-on-windows-with-private-key-authentication/
https://github.com/felix-cao/Blog/issues/206
https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse
标签:sshd,启用,Windows,OpenSSH,Server,openssh,Win11 From: https://www.cnblogs.com/eslzzyl/p/18516206