开启WSL的ssh访问

开启WSL的ssh访问

我不打算开启Windows的ssh,只是想开WSL的ssh,因为sb微软服务器太难连了,下载不了openssh

1. 测试开启ssh

步骤如下:

  1. WSL中安装openssh-server
  2. 修改默认的22端口,避免与Windows SSH冲突
  3. 添加Windows防火墙规则,允许端口转发

测试:

  1. sudo apt update && sudo apt install openssh-server
  2. 编辑/etc/ssh/sshd_config

在末尾插入即可:(用户名记得改)

Port 2222
PasswordAuthentication yes
PermitRootLogin no
AllowUsers your_username
  1. sudo service ssh start
  2. Windows中执行
New-NetFirewallRule -DisplayName "WSL SSH" -Direction Inbound -LocalPort 2222 -Protocol TCP -Action Allow
$wsl_ip = (wsl hostname -I).Trim()
netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=2222 connectaddress=$wsl_ip
  1. 外部测试一下:ssh -p 2222 your_username@192.168.x.x(用主机IP连接)

2. 开机自动开启ssh

测试没问题之后,直接编辑/etc/wsl.conf,在每次开启wsl时都会执行

我的/etc/wsl.conf如下,其中第一和二行是系统原来的东西

[boot]
systemd=true
command = "service ssh start"
command = "powershell.exe -Command 'New-NetFirewallRule -DisplayName "WSL SSH" -Direction Inbound -LocalPort 2222 -Protocol TCP -Action Allow'"
command = "powershell.exe -Command '$wsl_ip = (wsl hostname -I).Trim(); netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=2222 connectaddress=$wsl_ip'"

3. 最后

还不够自动化?端口占用了怎么办,能不能开启Windows时自动开启WSL?……自己折腾去吧

posted on 2026-01-17 23:31  应该怎么爱  阅读(1)  评论(0)    收藏  举报