在仅允许入站 SSH 连接的目标计算机上的 VSCode 中使用"Remote SSH"



有没有办法使用 VSCode 远程 SSH 扩展与不允许出站互联网连接的远程主机进行交互?

是否可以从另一个系统下载 vscode 服务器文件并复制到主机?

我读了这篇文章,但我无法将服务器连接到互联网。

当您连接到主机时,它会执行一个 bash 脚本,该脚本会获取或卷曲压缩包并将其提取到主目录的目录中。下面是一个脱机解决方法。

  1. 尝试连接,让它失败

  2. 在服务器上,获取提交 ID

    $ ls ~/.vscode-server/bin
    553cfb2c2205db5f15f3ee8395bbd5cf066d357d
    
  3. 下载压缩包,将 $COMMIT_ID 替换为上一步中的提交编号

对于稳定版本

https://update.code.visualstudio.com/commit:$COMMIT_ID/server-linux-x64/stable

对于预览体验版

https://update.code.visualstudio.com/commit:$COMMIT_ID/server-linux-x64/insider

  1. 将压缩包移动到~/.vscode-server/bin/$COMMIT_ID/vscode-server-linux-x64.tar.gz

  2. 在此目录中提取压缩包

    $ cd ~/.vscode-server/bin/$COMMIT_ID
    $ tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
    
  3. 再次连接

您仍需要手动安装所有扩展。市场上所有扩展旁边都有一个下载按钮。拥有 .vsix 文件后,可以使用扩展管理器中的">从 VSIX安装"选项通过 GUI 安装它们。

这有点痛苦,希望他们能改进这个过程,但是如果你有一个基于网络的主目录,你只需要这样做一次。

open vscode -> about

Version: 1.46.1
Commit: cd9ea6488829f560dc949a8b2fb789f3cdc05f5d
Date: 2020-06-17T21:17:14.222Z
Electron: 7.3.1
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 17.7.0

$COMMIT_ID = cd9ea6488829f560dc949a8b2fb789f3cdc05f5d

添加了新功能以支持脱机安装

但是,您现在可以通过远程 - SSH 扩展中的新用户设置来解决此问题。如果启用远程设置。SSH.allowLocalServerDownload,扩展将首先在客户端上安装 VS Code Server,然后通过 SCP 将其复制到服务器。

注意:这目前是一项实验性功能,但在下一版本中将默认启用

https://code.visualstudio.com/blogs/2019/10/03/remote-ssh-tips-and-tricks

VS 代码的当前版本:1.48.2

我只是在服务器端杀死wget进程,让客户端下载存档并将其传输到服务器端。这很简单,如下所示。

  1. 确保在设置中设置.json
"remote.SSH.allowLocalServerDownload": true,
  1. 执行下面的外壳程序。
# to find the <pid>
ps aux | grep wget | grep vscode-server
# kill the process
kill -9 <pid>
# then wait for the client downloading and transferring
# optional: If you want to know the progress, just 
cd ~/.vscode-server/bin/<commit-id>/
watch -n 1 -d ls -rthl

一个解决方法 我已经做了以下工作:

桌面~/.ssh/config

...
Host *
RemoteForward 54321
...

远程:通过 .bashrc 将~/bin添加到PATH~/bin/wget

#!/bin/bash
export LD_LIBRARY_PATH=$HOME/opt/lib/tsocks/
export TSOCKS_CONF_FILE=$HOME/opt/tsocks/tsocks.conf
$HOME/bin/tsocks /usr/bin/wget $@

远程:~/opt/tsocks/tsocks.conf

server = 127.0.0.1
server_port = 54321
server_type = 5

注意tsocks二进制文件已被SCP化~/bin/tsocks并且~/opt/tsocks/已使用通常存储在/usr/lib64/libtsocks.so中的libtsocks.so创建

这是一个解决方法,允许我拥有 wget 功能,而不会弄乱我的个人资料之外的任何内容以使其工作(例如:不需要 root ...即使我有)。

相关内容

  • 没有找到相关文章

最新更新