ZeroTier + SSH 远程连接 WSL2 子系统

使用 ZeroTier One 进行组网

  • 将桌面客户端更新到最新版本
  • 使用路由器的 ZeroTier 插件,在 ZeroTier控制台里将路由器设置为 Routes

WSL 内配置

  • 安装配置 ssh 服务
    1
    2
    3
    4
    5
    6
    # 重新安装一遍 ssh
    sudo apt remove openssh-server
    sudo apt install openssh-server

    # 不需要改配置文件了
    # sudo vim /etc/ssh/sshd_config
  • WSL 网络模式为 NAT 模式

Windows 内配置

  • 配置端口转发

    防止 WSL2 的 localhost 转发不稳定,所以使用 v4tov6

    1
    netsh interface portproxy add v4tov6 listenaddress=0.0.0.0 listenport=2222 connectaddress=::1 connectport=22
  • 配置防火墙入站规则
    1
    netsh advfirewall firewall add rule name=WSL2 dir=in action=allow protocol=TCP localport=2222
  • 本地连接
    1
    ssh <username>@::1
  • 远程主机连接
    1
    ssh <username>@<远程主机在 ZeroTier 中被分配的 IP> -p 2222

无须密码 SSH 连接

  • 先在远程主机上生成密钥
    1
    ssh-keygen
  • WSL 内记录公钥
    1
    2
    3
    4
    5
    6
    7
    # mkdir ~/.ssh
    cd ~/.ssh

    # 将公钥复制到需要连接的 WSL 用户目录的 `~/.ssh` 下

    # 再执行
    cat id_rsa.pub >> authorized_keys
  • 之后连接就不需要输入密码了