背景
在外上学,家里的台式机本来是要用到的话,使用小米智能插座+台式机通电启动+远程控制软件ToDesk来逃课,完全不涉及更深的技术,满足轻度外出调用电脑的需求。
最近又想折腾下ssh连接,一方面,ToDesk白嫖,有时候还是会卡几下,另一方面的话,可能就是随性想要搞一下了。
Windows 开启 ssh
安装 OpenSSH
先到下载OpenSSH
,选择自己对应的版本,我是64位,就选了圈出来的zip。

下载好后,解压在C:\OpenSSH,以管理员身份打开终端(PowerShell 和 CMD 应该都行)运行install-sshd.ps1,若已经手动把OpenSSH的路径添加到环境变量中的话,可以直接运行,否则请先移动到OpenSSH或用绝对路径运行install-sshd.ps1。
如果是msi 文件的话,应该也是类似的安装流程。
启动 ssh 并自动生成初始配置文件
在终端启动服务Start-Service sshd。
注意,在此之前不要在C:\ProgramData\ssh\下去创建修改sshd_config,否则,初始配置文件不会覆盖你创建的文件。
| |
防火墙开放 ssh 所用的端口
开放防火墙指定端口,比如默认的 22
具体参数,可按自己的需求配置
| |
ssh 服务自启动设置
进入Windows的服务页面,找到OpenSSH SSH Server,可按需要设置启动类型。

配置 ssh_config
密码登录
在C:\ProgramData\ssh\sshd_config,我们可以看到自动生成的初始配置文件。
| |
免密登录
但是,我的电脑账户是没有密码的,所以这里也介绍一下免密登录的设置。
我们先约定电脑 B 是我们想要 ssh 到的服务端电脑,电脑 A 是想要 ssh 到 电脑 B 的本地客户端电脑。
在电脑 A 先生成密钥(同样要先安装OpenSSH)
| |
生成密钥后,我们到C:\Users\[your_userName]\.ssh 下,找到公钥id_rsa.pub。
复制里面的内容,到电脑 B 的C:\Users\[your_userName]\.ssh创建authorized_keys(无后缀),并把前面复制的公钥内容,粘贴到里面。
再修改文件C:\ProgramData\ssh\sshd_config
| |
重启服务配置生效
每次修改完配置后,记得重启服务,使得配置生效,Restart-Service sshd。
其他
如过ssh时遇到Permission denied (publickey,keyboard-interactive),可以尝试在authorized_keys文件的属性的安全中取消继承并只保留system与administrator。

测试登录
| |
路由器端口转发
因为我的电脑 B 是连接路由器上网的,所以要访问到电脑 B 的话,只能发送给路由器。
以小米路由器为例,在路由器的高级设置中的端口转发,添加规则,内外端口映射根据自己需要修改,协议应该TCP就行(?),我偷懒直接都选了,内部 IP 地址,可以通过路由器的连接状况等方式查看。

设置完后,我们就向路由器的 IP 的对应端口发起 ssh 就行了。
总结
一股脑做完之后,想想还是有点用的,虽然因为没有静态 IP,需要先用ToDesk查看下现在的IP(当然,搞个自动化的启动后把路由器 IP 发送给我也不是不行,且确实有个类似的项目
,但是咕咕),不过,后面的使用就是直接对应着的了,稳定性高一点。
包括,其实顺便做了个挺抽象的事情,ssh到电脑 B 后,调用 wsl,逃课双系统(x
