昨天,一个小伙伴因为没有裤子穿,被困在家,要远程登录工区的 Windows 10。界面操作当然可以把远程桌面打开,不过之前就听说可选功能里有了 SSH Server,正好一试。
安装是很简单的,到设置里找到可选功能,把 OpenSSH 服务端添加进来即可,安装结束后,系统内会增加一个名为 sshd 的系统服务,命令行下 net start sshd 即可正常启动,按需配置为开机自启也可。
装好之后尝试从其他计算机用 ssh 客户端连接,被主机拒绝。心想应该是主机防火墙的问题,在网络上搜索配置,找到微软官方博客上的一篇文章:Using the OpenSSH Beta in Windows 10 Fall Creators Update and Windows Server 1709,文末就是防火墙配置的示例(PowerShell 语法):
1 |
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Service sshd -Enabled True -Direction Inbound -Protocol TCP -Action Allow -Profile Domain |
加入后没有效果,后来又找到北京堆栈科技的一篇文章 Windows SSH 设置说明,里面的配置略有区别:
1 2 3 4 5 |
# 设置防火墙 New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 # 如果以上 New-NetFirewallRule 执行没有报错,则可忽略下面命令,否则可以尝试使用 netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22 |
执行时由于先前的规则名已经存在,因此先 Remove-NetFirewallRule -Name sshd
,后执行,没有用到 netsh 命令就已经好了。