有没有办法使用 VSCode Remote SSH 扩展与不允许出站 Internet 连接的远程主机进行交互?
是否可以从另一个系统下载 vscode-server 文件并复制到主机?
我读了这个,但我无法将服务器连接到互联网。
有没有办法使用 VSCode Remote SSH 扩展与不允许出站 Internet 连接的远程主机进行交互?
是否可以从另一个系统下载 vscode-server 文件并复制到主机?
我读了这个,但我无法将服务器连接到互联网。
当您连接到主机时,它会执行一个 bash 脚本,该脚本会 wgets 或 curl 一个 tarball 并将其解压缩到您的主目录中的一个目录中。这是一个离线解决方法。
尝试连接,让它失败
在服务器上,获取提交 ID
$ ls ~/.vscode-server/bin
553cfb2c2205db5f15f3ee8395bbd5cf066d357d
下载 tarball,将 $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
将压缩包移动到~/.vscode-server/bin/$COMMIT_ID/vscode-server-linux-x64.tar.gz
在此目录中提取 tarball
$ cd ~/.vscode-server/bin/$COMMIT_ID
$ tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
重新连接
您仍然需要手动安装任何扩展。市场上所有扩展程序旁边都有一个下载按钮。获得 .vsix 文件后,您可以通过 GUI 使用扩展管理器中的从 VSIX 安装选项安装它们。
这有点痛苦,希望他们改进这个过程,但如果你有一个基于网络的主目录,你只需要这样做一次。
正在添加一项新功能以支持离线安装
但是,您现在可以通过 Remote - SSH 扩展中的新用户设置来解决此问题。如果启用设置 remote.SSH.allowLocalServerDownload,扩展程序将首先在客户端安装 VS Code Server,然后通过 SCP 将其复制到服务器。
注意:这目前是一个实验性功能,但将在下一个版本中默认开启
https://code.visualstudio.com/blogs/2019/10/03/remote-ssh-tips-and-tricks
打开 vscode -> 关于
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/config
...
Host *
RemoteForward 54321
...
远程:通过.bashrc添加到~/bin/wget
其中~/bin
PATH
#!/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/
已创建,libtsocks.so
通常存储在/usr/lib64/libtsocks.so
这是一种解决方法,它允许我拥有 wget 功能,而不会弄乱我的个人资料之外的任何东西来让它工作(例如:不需要 root ......即使我有它)。
当前版本的 VS 代码:1.48.2
我只是干掉服务器端的wget进程,让客户端下载归档并传输到服务器端。这很容易,如下所示。
"remote.SSH.allowLocalServerDownload": true,
# 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