Mac端VSCode无法连接远程FreeBSD服务器问题求助
VSCode Remote-SSH 无法连接 FreeBSD 服务器(SSH可正常免密登录)
问题详情
- 运行环境:MacOS,VSCode 1.82.2,Remote-SSH 扩展版本 0.106.4
- 异常现象:可通过SSH免密登录FreeBSD 11.4-RELEASE服务器,但VSCode Remote-SSH连接失败;连接Ubuntu服务器无异常
- 已尝试操作:配置SSH免密登录(公钥已添加至authorized_keys)、尝试第三方Gist方案,均未解决问题
Remote-SSH 连接日志
[17:22:30.369] Log Level: 2 [17:22:30.463] SSH Resolver called for "ssh-remote+10.102.13.130", attempt 1 [17:22:30.463] "remote.SSH.useLocalServer": true [17:22:30.463] "remote.SSH.useExecServer": false [17:22:30.464] "remote.SSH.path": undefined [17:22:30.464] "remote.SSH.configFile": undefined [17:22:30.464] "remote.SSH.useFlock": true [17:22:30.464] "remote.SSH.lockfilesInTmp": false [17:22:30.464] "remote.SSH.localServerDownload": auto [17:22:30.466] "remote.SSH.remoteServerListenOnSocket": false [17:22:30.467] "remote.SSH.showLoginTerminal": false [17:22:30.467] "remote.SSH.defaultExtensions": [] [17:22:30.467] "remote.SSH.loglevel": 2 [17:22:30.467] "remote.SSH.enableDynamicForwarding": true [17:22:30.467] "remote.SSH.enableRemoteCommand": false [17:22:30.467] "remote.SSH.serverPickPortsFromRange": {} [17:22:30.468] "remote.SSH.serverInstallPath": {} [17:22:30.473] VS Code version: 1.82.2 [17:22:30.473] Remote-SSH version: remote-ssh@0.106.4 [17:22:30.473] darwin x64 [17:22:30.475] SSH Resolver called for host: 10.102.13.130 [17:22:30.475] Setting up SSH remote "10.102.13.130" [17:22:30.479] Acquiring local install lock: /var/folders/7m/zlzr9drd5qxd_1y7js_xfpdh0000gn/T/vscode-remote-ssh-d2448b3d-install.lock [17:22:30.481] Looking for existing server data file at /Users/rishabvar/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-d2448b3d-abd2f3db4bdb28f9e95536dfa84d8479f1eb312d-0.106.4/data.json [17:22:30.482] Using commit id "abd2f3db4bdb28f9e95536dfa84d8479f1eb312d" and quality "stable" for server [17:22:30.485] Install and start server if needed [17:22:30.487] PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/rishabvar/Library/Python/3.8/bin:/Users/rishabvar/Library/Python/3.8:/Library/Apple/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin [17:22:30.487] Checking ssh with "ssh -V" [17:22:30.527] > OpenSSH_9.0p1, LibreSSL 3.3.6 [17:22:30.545] askpass server listening on /var/folders/7m/zlzr9drd5qxd_1y7js_xfpdh0000gn/T/vscode-ssh-askpass-b8bb9d5bf72233293430f652c77ebe63752d1b34.sock [17:22:30.546] Spawning local server with {"serverId":1,"ipcHandlePath":"/var/folders/7m/zlzr9drd5qxd_1y7js_xfpdh0000gn/T/vscode-ssh-askpass-fd01024286bf470358f3894c77e691d3d5b6761d.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","59727","-o","ConnectTimeout=15","10.102.13.130"],"serverDataFolderName":".vscode-server","dataFilePath":"/Users/rishabvar/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-d2448b3d-abd2f3db4bdb28f9e95536dfa84d8479f1eb312d-0.106.4/data.json"} [17:22:30.546] Local server env: {"SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.uKknS2GIa0/Listeners","SHELL":"/bin/zsh","DISPLAY":"1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/Users/rishabvar/.vscode/extensions/ms-vscode-remote.remote-ssh-0.106.4/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)","VSCODE_SSH_ASKPASS_EXTRA_ARGS":"--ms-enable-electron-run-as-node","VSCODE_SSH_ASKPASS_MAIN":"/Users/rishabvar/.vscode/extensions/ms-vscode-remote.remote-ssh-0.106.4/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/var/folders/7m/zlzr9drd5qxd_1y7js_xfpdh0000gn/T/vscode-ssh-askpass-b8bb9d5bf72233293430f652c77ebe63752d1b34.sock"} [17:22:30.547] Spawned 84864 [17:22:30.749] > local-server-1> Running ssh connection command: "-v -T -D 59727 -o ConnectTimeout=15 10.102.13.130" [17:22:30.752] > local-server-1> Spawned ssh, pid=84868 [17:22:30.763] stderr> OpenSSH_9.0p1, LibreSSL 3.3.6 [17:22:31.007] stderr> debug1: Server host key: ssh-ed25519 SHA256:ZTSpaNda0Xr2+52t5jS1Zf/+t3iuLRlOrbN9H0XbFdk [17:22:31.409] stderr> Authenticated to 10.102.13.130 ([10.102.13.130]:22) using "publickey". [17:22:31.458] > Warning: no access to tty (Bad file descriptor). > Thus no job control in this shell. [17:22:31.478] > ready: 64fac24c4b70 [17:22:31.504] > FreeBSD 11.4-RELEASE FreeBSD 11.4-RELEASE #0 r362094: Fri Jun 12 18:27:15 UTC 2020 root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC [17:22:31.504] Platform: linux [17:22:31.529] > /bin/csh [17:22:31.529] Shell: csh [17:22:31.529] Creating bash subshell inside "csh" [17:22:31.609] > bash version: 5.0.16(0)-release [17:22:31.654] > 64fac24c4b70: running [17:22:31.667] > Unsupported platform: FreeBSD > 64fac24c4b70: start > exitCode==35== [17:22:31.668] > listeningOn==== > osReleaseId==FreeBSD== > arch==== > vscodeArch==== > bitness==== > tmpDir==/tmp== > platform==== > unpackResult==== > didLocalDownload==0== > downloadTime==== > installTime==== > extInstallTime==== > serverStartTime==== > 64fac24c4b70: end
解决方法
日志明确显示Unsupported platform: FreeBSD,说明VSCode Remote-SSH扩展未原生识别FreeBSD平台,可通过以下步骤解决:
方法1:强制将FreeBSD识别为Linux平台
在VSCode的settings.json中添加配置,让VSCode把目标FreeBSD服务器当作Linux处理:
"remote.SSH.serverInstallPath": { "10.102.13.130": "/home/你的用户名/.vscode-server" }, "remote.SSH.serverArgs": [ "-o", "PermitLocalCommand=yes", "-o", "LocalCommand=mkdir -p ~/.vscode-server/data/Machine && echo '{\"osReleaseId\":\"linux\"}' > ~/.vscode-server/data/Machine/settings.json" ]
替换配置中的10.102.13.130为你的FreeBSD服务器IP,你的用户名为服务器登录账户名。
方法2:手动部署VSCode Server
- 下载对应版本的FreeBSD包,版本号匹配日志中的commit id:
abd2f3db4bdb28f9e95536dfa84d8479f1eb312d - 在FreeBSD服务器上创建目录:
mkdir -p ~/.vscode-server/bin/abd2f3db4bdb28f9e95536dfa84d8479f1eb312d - 将下载的包上传到该目录并解压
- 重启VSCode后重新尝试连接
方法3:修改服务器默认Shell为Bash
日志显示当前默认Shell为csh,可能导致VSCode Server初始化异常:
- 在FreeBSD服务器上执行
pkg install bash安装Bash(若未安装) - 执行
chsh -s /usr/local/bin/bash修改默认Shell - 重新发起VSCode Remote-SSH连接
内容的提问来源于stack exchange,提问作者Rishab V Arun
相关产品推荐
相关产品推荐

