使用OpenSSH+Tailscale打通双windows系统笔记本和主机连接,实现ssh访问主机
问题产生
最近想实现一个需求:人在外面时,用笔记本通过 SSH 连接家里的 Windows 主机。
主机没有公网IPv4,也不想在路由器上暴露SSH的22端口,因此采用了:
Windows OpenSSH Server + Tailscale
实现
一、下载Tailscale并组网
在笔记本和主机同时下载Tailscale,并使用同一账号登录。
https://tailscale.com/download
随后,Tailscale会为每个设备分配一个IP,实现设备的连接
具体配置教程可参考下面链接:
https://www.cnblogs.com/litchi/p/16315796.html
二,在受控主机端检查并启用ssh服务
在 Windows 主机上,以管理员身份打开 PowerShell,运行
Get-WindowsCapability -Online |
Where-Object Name -Like 'OpenSSH*'
如果服务端显示
OpenSSH.Server~~~~0.0.1.0
State : NotPresent
执行安装
Add-WindowsCapability `
-Online `
-Name OpenSSH.Server~~~~0.0.1.0
安装后启动服务,并设置为开机自启
Start-Service sshd
Set-Service sshd -StartupType Automatic
检查服务状态:
Get-Service sshd
预期结果:
Status Name
Running sshd
三、确认 SSH 正在监听
检查 TCP 22 端口:
Get-NetTCPConnection `
-LocalPort 22 `
-State Listen
正常情况下会看到:
0.0.0.0:22
[::]:22
也可以进行本机 TCP 测试:
Test-NetConnection 127.0.0.1 -Port 22
如果输出:
TcpTestSucceeded : True
说明 SSH 服务已经能够接受连接。
继续测试实际登录:
ssh "$env:USERNAME@127.0.0.1"
登录时需要输入 Windows 账户的真实密码,而不是 Windows Hello PIN。
成功进入远程命令行后,可以执行:
whoami
hostname
exit
四,使用term工具在笔记本上实现ssh访问主机
本人使用的是electerm工具
新建连接,输入Tailscale为主机分配的IP,端口选择22,

保存并连接即可,即可在主界面看到自己已经进入到台式机的终端
如果想便捷传文件,用附带的Sftp即可

浙公网安备 33010602011771号