找回密码
 立即注册
首页 业界区 安全 开启WSL的ssh访问

开启WSL的ssh访问

艺轫 2026-1-17 23:35:00
开启WSL的ssh访问

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

步骤如下:

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

  • sudo apt update && sudo apt install openssh-server
  • 编辑/etc/ssh/sshd_config
在末尾插入即可:(用户名记得改)
  1. Port 2222
  2. PasswordAuthentication yes
  3. PermitRootLogin no
  4. AllowUsers your_username
复制代码

  • sudo service ssh start
  • Windows中执行
  1. New-NetFirewallRule -DisplayName "WSL SSH" -Direction Inbound -LocalPort 2222 -Protocol TCP -Action Allow
  2. $wsl_ip = (wsl hostname -I).Trim()
  3. netsh interface portproxy add v4tov4 listenport=2222 listenaddress=0.0.0.0 connectport=2222 connectaddress=$wsl_ip
复制代码

  • 外部测试一下:ssh -p 2222 your_username@192.168.x.x(用主机IP连接)
2. 开机自动开启ssh

测试没问题之后,直接编辑/etc/wsl.conf,在每次开启wsl时都会执行
我的/etc/wsl.conf如下,其中第一和二行是系统原来的东西
  1. [boot]
  2. systemd=true
  3. command = "service ssh start"
  4. command = "powershell.exe -Command 'New-NetFirewallRule -DisplayName "WSL SSH" -Direction Inbound -LocalPort 2222 -Protocol TCP -Action Allow'"
  5. 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?……自己折腾去吧

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

2026-1-18 21:04:10

举报

5 天前

举报

您需要登录后才可以回帖 登录 | 立即注册