使用;远程SSH“;在目标计算机上仅允许入站SSH连接的VSCode中

使用;远程SSH“;在目标计算机上仅允许入站SSH连接的VSCode中,ssh,visual-studio-code,vscode-remote,Ssh,Visual Studio Code,Vscode Remote,有没有办法使用VSCode远程SSH扩展与不允许出站internet连接的远程主机进行交互 是否可以从其他系统下载vscode服务器文件并复制到主机 我读了,但无法将服务器连接到internet。当您连接到主机时,它会执行一个bash脚本,该脚本会创建或卷曲一个tarball,并将其提取到主目录中的目录中。这里有一个离线解决方法 尝试连接,让它失败 在服务器上,获取提交id $ ls ~/.vscode-server/bin 553cfb2c2205db5f15f3ee8395bbd5cf06

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

是否可以从其他系统下载vscode服务器文件并复制到主机


我读了,但无法将服务器连接到internet。

当您连接到主机时,它会执行一个bash脚本,该脚本会创建或卷曲一个tarball,并将其提取到主目录中的目录中。这里有一个离线解决方法

  • 尝试连接,让它失败

  • 在服务器上,获取提交id

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

  • 用于稳定版本

    对于内部版本

  • 将tarball移动到~/.vscode服务器/bin/$COMMIT\u 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使用extensions manager中的install from vsix选项来安装它们


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

    a解决办法我做了以下工作:

    桌面
    ~/.ssh/config

    ...
    
    Host *
      RemoteForward 54321
    
    ...
    
    远程:
    ~/bin/wget
    ,其中通过.bashrc将
    ~/bin
    添加到
    路径中

    #!/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
    二进制文件已被压缩到
    ~/bin/tsocks
    ,并且
    ~/opt/tsocks/
    已使用
    libtsocks创建。因此
    通常存储在
    /usr/lib64/libtsocks中。因此


    这是一种变通方法,允许我拥有wget功能,而不必干扰我的个人资料以外的任何内容即可使其正常工作(例如:不需要root…即使我有它)。

    正在添加一项新功能以支持脱机安装

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

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

    打开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当前版本的VS代码:1.48.2

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

  • 确保在settings.json中进行了设置
  • 执行下面的shell脚本
  • #查找
    ps aux | grep wget | grep vscode服务器
    #终止进程
    杀死-9
    #然后等待客户端下载和传输
    #可选项:如果您想知道进度,只需
    cd~/.vscode服务器/bin//
    手表-n 1-d ls-rthl
    
    连接到什么?您正在尝试在没有internet连接的情况下安装VSCode吗?请澄清您在说什么。@ifconfig抱歉我的英语不好,我想使用vscode的ssh远程扩展,客户端连接到internet,但服务器不连接vscode远程访问基于客户端和服务器计算机都连接到internet的前提。否则,他们就无法沟通。如果您的客户端设备与服务器设备位于同一网络上,则可能存在一种变通方法。服务器是armhf而不是amd64。我将url更改为服务器linux armhf/stable,但显示404@aviso您可以添加手动安装扩展的方式吗?下载vsix并将其scp到所需的服务器是一回事,但尝试从vsix手动安装会查看本地主机,而不是远程主机。请提供清晰的说明,我将更新它们。@WSLUser如果您从客户端GUI安装它们。只要把它们放在一个你可以在客户端浏览的地方。在VScode中,连接到远程主机,然后在扩展管理器中单击右上角的三个点,然后选择InstallfromVSIX。复制和安装扩展时会有延迟,但是您应该会在扩展管理器中看到它。我可以确认此方法也适用于远程Docker容器。我正在将Windows 10 Hyper-V与Linux容器一起使用,并收到下载VS code Server失败的
    (https://update.code.visualstudio.com/commit:$COMMIT_ID/server-linux-x64/stable):HTTP 407-authenticationrequired)
    ,大概是因为我的公司代理。请注意,如果您像我一样多次尝试安装,则在
    ~/.vscode server/bin/
    中会有一个文件夹,每个尝试都会附加一个时间戳。删除所有文件并留下一个只有提交ID(无时间戳)的文件夹。谢谢,即使没有解包.tar文件,也能正常工作,只需将其放在那里。这允许您使用“在SSH中安装”在远程实例上安装扩展吗?是,这使您可以安装远程扩展以及主服务器。如果您是主机上唯一使用VSCode的人,这将非常有用。这只解决了客户端有访问权限但远程主机没有访问权限的情况。上面的答案仍然是正确的解决方案。此选项现在已替换为
    remote.SSH.allowLocalServerDownload
    将“始终”、“自动”和“关闭”作为选项
    "remote.SSH.allowLocalServerDownload": true,