WSL 增加 SSH 服务

WSL 增加 SSH 服务

前言

为 WSL 增加 SSH , 并通过公网暴露

搭建步骤

WSL 中

  1. 检查 service ssh status
  2. 安装 apt install openssh-server
  3. 编辑文件 echo "Port 2222" >> /etc/ssh/sshd_config && echo "ListenAddress 0.0.0.0" >> /etc/ssh/sshd_config
  4. 启动服务 service ssh start
  5. 检查服务 service ssh status
  6. 获取 IP ip -c address

Windows 中 (开放到公网)

如果使用 Cloudflare Zero Trust 或者 Tailscale 可以跳过

1
2
3
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=2222 connectaddress=192.168.255.163 connectport=2222
netsh advfirewall firewall add rule name=”Open Port 2222 for WSL2” dir=in action=allow protocol=TCP localport=2222
netsh interface portproxy show v4tov4

测试

1
ssh [email protected] -p 2222 

测试 - 通过 cloudflare

Tunnels 配置为例:

1
2
3
4
# SubDomain
wsl.pancc.com
# Service
SSH://192.168.255.163:2222

windows

编辑文件 %USERPROFILE%\.ssh\config

加入以下内容:

1
2
Host wsl.pancc.com
ProxyCommand C:\Program Files (x86)\cloudflared\cloudflared.exe access ssh --hostname %h

使用控制台命令

1
ssh [email protected] -p 80

或使用 **MobaXterm **

  1. new session
  2. host: wsl.pancc.com, port 80
  3. 选择 Network settings; 选择 Proxy Type: Local , Host: wsl.pancc.com, Local Proxy Command: cloudflared.exe access ssh --hostname %host

额外

使用 Tailscale

Cloudflare 在大陆的访问并不流畅, 并且需要需要额外配置, 可以使用 Tailscale 省去 .ssh\config 的配置

  1. 通过 该页面 添加本地机器与 WSL 机器
  2. 复制 WSL 的 ADDRESSES 在本地机器以任何客户端登录 SSH, 端口为与配置一样为2222