背景
在外上学,家里的台式机本来是要用到的话,使用小米智能插座
+台式机通电启动
+远程控制软件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