Używanie "zdalnego SSH" w VSCode na docelowej maszynie, która umożliwia tylko przychodzące połączenia SSH

Czy istnieje sposób użycia zdalnego rozszerzenia SSH VSCode do interakcji ze zdalnym hostem, który nie pozwala na wychodzące połączenia internetowe?

Czy jest możliwe pobranie plików vscode-server z innego systemu i skopiowanie ich do hosta?

Czytałem to ale nie mogę połączyć serwera z Internetem.

Author: auser, 2019-06-22

5 answers

Po podłączeniu do hosta wykonuje skrypt bash, który wgets lub loki tarball i wyodrębnia go w katalogu w katalogu domowym. Oto obejście w trybie offline.

  1. Próba połączenia, niech się nie powiedzie

  2. Na serwerze Pobierz identyfikator commita

    $ ls ~/.vscode-server/bin
    553cfb2c2205db5f15f3ee8395bbd5cf066d357d
    
  3. Pobierz tarball zastępując $COMMIT_ID numerem commita z poprzedniego kroku

Dla Stabilnego Wersja

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

Dla Wersji Insider

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

  1. Przenieś tarball do ~/.VSCode-server/bin/$COMMIT_ID/VSCode-server-linux-x64.smoła.gz

  2. Wyodrębnij tarball w tym katalogu

    $ cd ~/.vscode-server/bin/$COMMIT_ID
    $ tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
    
  3. Połącz again

Nadal będziesz musiał ręcznie instalować rozszerzenia. Obok wszystkich rozszerzeń w marketplace znajduje się przycisk pobierania. Kiedy już będziesz miał .plik vsix można zainstalować je za pomocą interfejsu graficznego za pomocą opcji Install from VSIX w Menedżerze rozszerzeń.

To rodzaj bólu i mam nadzieję, że poprawią ten proces, ale jeśli masz katalog domowy oparty na sieci, musisz to zrobić tylko raz.

 56
Author: aviso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-06 01:58:17

Nowa funkcja jest dodawana do obsługi instalacji offline

Możesz jednak teraz rozwiązać ten problem poprzez nowe ustawienie użytkownika w rozszerzeniu Remote-SSH. Jeśli włączysz ustawienie zdalne.SSH.allowLocalServerDownload, rozszerzenie najpierw zainstaluje serwer VS Code na kliencie, a następnie skopiuje go na serwer przez SCP.

Uwaga: jest to obecnie funkcja eksperymentalna, ale będzie domyślnie włączona w następnym release

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

 2
Author: Jonathan Parker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

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

 1
Author: dfasfs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-07 09:34:45

A a praca wokół zrobiłem następujące:

Pulpit ~/.ssh/config

...

Host *
  RemoteForward 54321

...

Remote: ~/bin/wget w którym ~/bin jest dodawany do PATH poprzez .bashrc

#!/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 $@

Remote: ~/opt/tsocks/tsocks.conf

server = 127.0.0.1
server_port = 54321
server_type = 5

Uwaga tsocks binarny został SCP-ed do ~/bin/tsocks i ~/opt/tsocks/ został utworzony z libtsocks.so, który jest zwykle przechowywany w /usr/lib64/libtsocks.so

Jest to obejście, które pozwala mi mieć funkcjonalność wget z poza messing z niczego poza moim profilem, aby go do pracy (np: NO root wymagane ... mimo, że go mam).

 0
Author: CaffeineAddiction,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-12 18:15:11

Aktualna wersja VS Code: 1.48.2

Po prostu zabijam proces wget na końcu serwera i pozwalam klientowi pobrać archiwum i przenieść je na koniec serwera. To dość proste, jak poniżej.

  1. upewnij się, że ustawiłeś w Ustawieniach.json
"remote.SSH.allowLocalServerDownload": true,
  1. wykonaj poniższe scrpity powłoki.
# 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
 0
Author: Johnny Zhang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-26 14:11:16