VS代码-Openfolders并通过SSH隧道编辑文件

问题描述

我通常使用VS Code的Remote-SSH扩展连接到我在其中工作的AWS实例。他们的文档中有一个很好的部分介绍了如何here。我讨厌仅使用终端,因为我喜欢调试器以及打开文件夹和文件进行查看的能力。直到最近,我仍从我的MacBook Pro(A)到运行Ubuntu 18.04.4 LTS(B)的AWS实例进行SSH交换,没有任何问题。但是,现在,我需要处理一个新实例,也就是Ubuntu 18.04.4 LTS,(C),我只能从B而不是从A SSH进入。

This part of the documentation表示我可以从A到B进行SSH,然后转发端口以创建SSH隧道。但是,这只允许我将终端打开到C中。但是,这不允许象我想要的那样在资源管理器中打开文件夹和文件。

我已经按照Qinsheng的说明here设置了SSH隧道并使用了Remote-SSH扩展的“ ProxyJump”功能,我的配置文件如下所示:

Host B
  HostName B.mydomain.com
  IdentityFile /Users/MyID/.ssh/B_private_key
  User me

Host C
  HostName C
  IdentityFile /Users/MyID/.ssh/C_private_key
  ProxyJump B
  User me

当我使用VS Code上的终端运行ssh C时,此方法非常有效。无需输入任何密码,我被带到C并可以执行我的工作。但是,当我尝试使用“远程SSH:连接到主机”功能将SSH转换为C时,使用ProxyJump通过B并随后在其中打开文件夹/查看文件,我收到消息“无法建立与'C'的连接” ”。堆栈跟踪如下所示:

[13:59:48.537] Log Level: 2

[13:59:48.539] remote-ssh@0.51.0
[13:59:48.539] darwin x64
[13:59:48.541] SSH Resolver called for "ssh-remote+C",attempt 1
[13:59:48.541] SSH Resolver called for host: C
[13:59:48.541] Setting up SSH remote "C"
[13:59:48.546] Acquiring local install lock: /var/folders/w2/0w6jys8d34x940rj7f5r20vnh83ht7/T/vscode-remote-ssh-C-install.lock
[13:59:48.590] Looking for existing server data file at /Users/MyID/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-v1-91899dcef7b8110878ea59626991a18c8a6a1b3e-0.51.0/data.json
[13:59:48.593] Using commit id "91899dcef7b8110878ea59626991a18c8a6a1b3e" and quality "stable" for server
[13:59:48.595] Install and start server if needed
[13:59:48.599] Checking ssh with "ssh -V"
[13:59:48.629] > OpenSSH_8.1p1,LibreSSL 2.7.3
[13:59:48.632] askpass server listening on /var/folders/w2/0w6jys8d34x940rj7f5r20vnh83ht7/T/vscode-ssh-askpass-c4eabfddec4ae91c1e423a3167dd184d8553da26.sock
[13:59:48.633] Spawning local server with {"ipcHandlePath":"/var/folders/w2/0w6jys8d34x940rj7f5r20vnh83ht7/T/vscode-ssh-askpass-b00842fb08dbbff49678439b1335f105364fd9d5.sock","sshCommand":"ssh","sshArgs":["-v","-T","-D","52911","-o","ConnectTimeout=15","C"],"dataFilePath":"/Users/MyID/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-ssh/vscode-ssh-host-v1-91899dcef7b8110878ea59626991a18c8a6a1b3e-0.51.0/data.json"}
[13:59:48.633] Local server env: {"DISPLAY":"1","ELECTRON_RUN_AS_NODE":"1","SSH_ASKPASS":"/Users/MyID/.vscode/extensions/ms-vscode-remote.remote-ssh-0.51.0/out/local-server/askpass.sh","VSCODE_SSH_ASKPASS_NODE":"/Users/MyID/Desktop/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer)","VSCODE_SSH_ASKPASS_MAIN":"/Users/MyID/.vscode/extensions/ms-vscode-remote.remote-ssh-0.51.0/out/askpass-main.js","VSCODE_SSH_ASKPASS_HANDLE":"/var/folders/w2/0w6jys8d34x940rj7f5r20vnh83ht7/T/vscode-ssh-askpass-c4eabfddec4ae91c1e423a3167dd184d8553da26.sock"}
[13:59:48.635] Spawned 29414
[13:59:48.734] > local-server> Spawned ssh: 29415
[13:59:48.738] stderr> OpenSSH_8.1p1,LibreSSL 2.7.3
[13:59:48.740] stderr> /bin/false: No such file or directory
[13:59:48.740] stderr> kex_exchange_identification: Connection closed by remote host
[13:59:48.741] > local-server> ssh child died,shutting down
[13:59:48.745] Local server exit: 0
[13:59:48.745] Received install output: OpenSSH_8.1p1,LibreSSL 2.7.3
/bin/false: No such file or directory
kex_exchange_identification: Connection closed by remote host

[13:59:48.746] Stopped parsing output early. Remaining text: OpenSSH_8.1p1,LibreSSL 2.7.3/bin/false: No such file or directorykex_exchange_identification: Connection closed by remote host
[13:59:48.746] Failed to parse remote port from server output
[13:59:48.747] Resolver error: 
[13:59:48.750] ------

在我看来,主要问题是试图访问/bin/false作为解释器。我认为这是我的MacBook Pro(A)的问题。我确实注意到,在A上运行echo $SHELL时,它返回了/bin/false,但是我运行export SHELL=/bin/bash进行了更改,并按照this post中的建议设置了VS Code的集成外壳也使MacOS也/bin/bash。我也检查了B上的echo $SHELL,它也同样显示了/bin/bash

我的问题是这些

  1. 我要实现的目标是可能的吗?
  2. 如果是,我在做什么错?/我应该检查些什么以确保我可以使用自己想要的VS Code功能?

解决方法

我知道了。我的/bin/false文件中有一堆/etc/passwd引用,所以我将它们更改为/bin/bash,现在它就像一个符咒。 :)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...