vs code 又搞幺蛾子了? ssh remote 无法远程连接带中文名的主机了呢?

45 天前
 GoodRui

没注意从哪天,反正是最近 2 、3 周开始,使用 ssh remote 远程的时候无法连接 host 名中有中文字符的主机了呢?用 Mac 和 Windows 的测试都不行了... 搜了下也没人讨论,是我个人问题吗?

811 次点击
所在节点    Visual Studio Code
7 条回复
march1993
45 天前
日志贴上来看一下
GoodRui
45 天前
多次尝试了下,发现是 Mac 的连不了,Windows 的可以正常连...
GoodRui
45 天前
@march1993
```bash
[14:43:37.256] Log Level: 2
[14:43:37.261] SSH Resolver called for "ssh-remote+测试.63", attempt 1
[14:43:37.262] "remote.SSH.useLocalServer": true
[14:43:37.262] "remote.SSH.useExecServer": true
[14:43:37.262] "remote.SSH.path": undefined
[14:43:37.262] "remote.SSH.configFile": undefined
[14:43:37.262] "remote.SSH.useFlock": true
[14:43:37.262] "remote.SSH.lockfilesInTmp": false
[14:43:37.262] "remote.SSH.localServerDownload": auto
[14:43:37.263] "remote.SSH.remoteServerListenOnSocket": false
[14:43:37.263] "remote.SSH.showLoginTerminal": false
[14:43:37.263] "remote.SSH.defaultExtensions": []
[14:43:37.263] "remote.SSH.loglevel": 2
[14:43:37.263] "remote.SSH.enableDynamicForwarding": true
[14:43:37.263] "remote.SSH.enableRemoteCommand": false
[14:43:37.263] "remote.SSH.serverPickPortsFromRange": {}
[14:43:37.263] "remote.SSH.serverInstallPath": {}
[14:43:37.265] VS Code version: 1.87.2
[14:43:37.265] Remote-SSH version: remote-ssh@0.109.0
[14:43:37.265] darwin arm64
[14:43:37.270] SSH Resolver called for host: 测试.63
[14:43:37.270] Setting up SSH remote "测试.63"
[14:43:37.272] Acquiring local install lock: /var/folders/38/b3x_cvmj52l_34zwckxg4j2h0000gn/T/vscode-remote-ssh-1fc16eca-install.lock
[14:43:37.272] Looking for existing server data file at /Users/goodrui/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-1fc16eca-863d2581ecda6849923a2118d93a088b0745d9d6-0.109.0-es/data.json
[14:43:37.273] Using commit id "863d2581ecda6849923a2118d93a088b0745d9d6" and quality "stable" for server
[14:43:37.275] Install and start server if needed
[14:43:37.281] PATH: /Users/goodrui/.local/share/zinit/polaris/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/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:/Applications/Wireshark.app/Contents/MacOS:/Users/goodrui/.local/bin:/Library/Developer/CommandLineTools/usr/bin/
[14:43:37.281] Checking ssh with "ssh -V"
[14:43:37.288] > OpenSSH_9.6p1, LibreSSL 3.3.6

[14:43:37.291] askpass server listening on /var/folders/38/b3x_cvmj52l_34zwckxg4j2h0000gn/T/vscode-ssh-askpass-d4669f369821c71afa3b6e2dfe0db30c1297d72e.sock
[14:43:37.291] Spawning local server with {"serverId":1,"ipcHandlePath":"/var/folders/38/b3x_cvmj52l_34zwckxg4j2h0000gn/T/vscode-ssh-askpass-012433f7d0f9af854f4613148a9c136d81e02100.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","58228","-o","ConnectTimeout=15","测试.63"],"serverDataFolderName":".vscode-server","dataFilePath":"/Users/goodrui/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-1fc16eca-863d2581ecda6849923a2118d93a088b0745d9d6-0.109.0-es/data.json"}
[14:43:37.291] Local server env: {"SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.YrWms1aRZR/Listeners","SHELL":"/bin/zsh","DISPLAY":"1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/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":"","VSCODE_SSH_ASKPASS_MAIN":"/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/var/folders/38/b3x_cvmj52l_34zwckxg4j2h0000gn/T/vscode-ssh-askpass-d4669f369821c71afa3b6e2dfe0db30c1297d72e.sock"}
[14:43:37.292] Spawned 74826
[14:43:37.392] > local-server-1> Running ssh connection command: ssh -v -T -D 58228 -o ConnectTimeout=15 测试.63
[14:43:37.392] > local-server-1> Spawned ssh, pid=74832
[14:43:37.395] stderr> hostname contains invalid characters
[14:43:37.396] > local-server-1> ssh child died, shutting down
[14:43:37.397] Local server exit: 0
[14:43:37.398] Received install output: local-server-1> Running ssh connection command: ssh -v -T -D 58228 -o ConnectTimeout=15 测试.63
local-server-1> Spawned ssh, pid=74832
hostname contains invalid characters
local-server-1> ssh child died, shutting down

[14:43:37.398] Failed to parse remote port from server output
[14:43:37.399] Resolver error: Error:
at g.Create (/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:499734)
at t.handleInstallOutput (/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:497056)
at e (/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:558185)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async /Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:580094
at async t.withShowDetailsEvent (/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:583753)
at async /Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:554890
at async T (/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:552941)
at async t.resolveWithLocalServer (/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:554430)
at async k (/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:577311)
at async t.resolve (/Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:581124)
at async /Users/goodrui/.vscode/extensions/ms-vscode-remote.remote-ssh-0.109.0/out/extension.js:2:847283
[14:43:37.404] ------
```

看中间 `stderr> hostname contains invalid characters`

ssh config 配置文件中主机的配置

```
Host 测试.63
User root
HostName 172.16.111.63
Port 22
```

我反复测试了,只要 `Host` 中有中文字符,就会报错。以前是没问题的,然后刚才用 Windows 机器测了几个也没问题。
march1993
45 天前
单独跑 `ssh -v -T -D 58228 -o ConnectTimeout=15 测试.63` 呢
GoodRui
45 天前
@march1993 感谢兄弟回复

我发现是我的 mac 连接的时候提示 `hostname contains invalid characters` 了...
这是咋整的呢...
march1993
44 天前
@GoodRui 改 PATH 环境变量,用自己编译的 ssh 顶掉系统自带的
GoodRui
43 天前
@march1993 感谢老哥,我发到 macOS 区了,https://www.v2ex.com/t/1026819 ,是最近 openssh 升级漏洞导致的,从 9.6p1 开始禁止 hostname 中使用特殊字符了。用 homebrew 安装了 openssh 9.5p1 问题解决了。纠结以后怎么办。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1026759

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX