在VSCode中通过WSL使用SSH并指定端口的连接问题
解决VS Code中通过WSL SSH指定端口且不修改现有bat脚本的问题
问题背景
- 已实现通过WSL的SSH连接默认22端口,现需指定其他端口(如2222),SSH配置已完成:
Host 目标主机 HostName 目标主机IP ForwardAgent yes Port 2222
- 现有用于多连接的
ssh.bat脚本内容如下,执行时触发错误,且不愿修改该脚本:
C:\Windows\system32\wsl.exe bash -ic 'ssh %*'
报错信息
[11:01:27.830] "install" terminal command done [11:01:27.831] Install terminal quit with output: error: unknown command: bash [11:01:27.832] Received install output: error: unknown command: bash [11:01:27.833] Failed to parse remote port from server output [11:01:27.834] Resolver error: Error:
解决思路(无需修改ssh.bat)
1. 将WSL默认Shell设置为Bash
报错核心是WSL找不到bash命令,大概率是当前WSL默认Shell不是Bash。按以下步骤操作:
- 打开WSL终端(任意已安装的发行版)
- 执行命令:
chsh -s /bin/bash
- 重启WSL(可通过
wsl --shutdown命令关闭后重新打开)
之后wsl.exe bash就能正常调用Bash,原bat脚本无需修改即可正常执行,同时SSH配置里的端口2222会生效。
2. 验证SSH配置有效性
确保WSL内的SSH配置文件(~/.ssh/config)格式正确,可直接在WSL终端执行ssh 目标主机测试连接,确认能通过2222端口连接成功,避免因配置本身问题导致后续VS Code连接失败。
内容的提问来源于stack exchange,提问作者Daryll
相关产品推荐
相关产品推荐

