microsoft / vscode-remote-release

Visual Studio Code Remote Development: Open any folder in WSL, in a Docker container, or on a remote machine using SSH and take advantage of VS Code's full feature set.
https://aka.ms/vscode-remote
Other
3.69k stars 296 forks source link

Setting up SSH Host stops at Copying VS Code Server to host with scp #10503

Open ayebD opened 4 days ago

ayebD commented 4 days ago

Is there an existing issue for this bug?

Required Troubleshooting Steps

Connect Locally

It doesn’t connect successfully (different error message)

->

VSCode Version: 1.95.3 Local OS version: Windows 10 22H2 Remote OS Version : Red Hat Enterprise Linux Server release 7.9 (Maipo) Remote Extension version: v0.115.1

Expected Behavior

No response

Steps To Reproduce

No response

Remote-SSH Log

Remote-SSH Log

``` [14:30:07.774] Log Level: 2 [14:30:07.791] SSH Resolver called for "ssh-remote+sldafrm32ba01", attempt 1 [14:30:07.792] "remote.SSH.useLocalServer": false [14:30:07.792] "remote.SSH.useExecServer": false [14:30:07.792] "remote.SSH.showLoginTerminal": false [14:30:07.793] "remote.SSH.remotePlatform": {} [14:30:07.793] "remote.SSH.path": undefined [14:30:07.793] "remote.SSH.configFile": C:\Users\ayebdh\.ssh\config [14:30:07.793] "remote.SSH.useFlock": false [14:30:07.793] "remote.SSH.lockfilesInTmp": false [14:30:07.793] "remote.SSH.localServerDownload": auto [14:30:07.793] "remote.SSH.remoteServerListenOnSocket": false [14:30:07.793] "remote.SSH.showLoginTerminal": false [14:30:07.793] "remote.SSH.defaultExtensions": [] [14:30:07.793] "remote.SSH.loglevel": 2 [14:30:07.793] "remote.SSH.enableDynamicForwarding": true [14:30:07.793] "remote.SSH.enableRemoteCommand": false [14:30:07.794] "remote.SSH.serverPickPortsFromRange": {} [14:30:07.794] "remote.SSH.serverInstallPath": {} [14:30:07.794] "remote.SSH.permitPtyAllocation": false [14:30:07.794] "remote.SSH.preferredLocalPortRange: undefined [14:30:07.794] "remote.SSH.useCurlAndWgetConfigurationFiles: true [14:30:07.800] VS Code version: 1.95.3 [14:30:07.800] Remote-SSH version: remote-ssh@0.115.1 [14:30:07.800] win32 x64 [14:30:07.804] SSH Resolver called for host: sldafrm32ba01 [14:30:07.804] Setting up SSH remote "sldafrm32ba01" [14:30:07.813] Using commit id "f1a4fb101478ce6ec82fe9627c43efbf9e98c813" and quality "stable" for server [14:30:07.816] Script variables: { "InstallExitCode.24": "AlreadyInProgress", "InstallExitCode.25": "ServerDownloadFailed", "InstallExitCode.26": "NoDownloaderAvailable", "InstallExitCode.27": "UnsupportedArch", "InstallExitCode.28": "StatusCheckFailed", "InstallExitCode.29": "NeedInsidersArch", "InstallExitCode.30": "NoDownloaderAvailableForStatusCheck", "InstallExitCode.31": "ServerTransferFailed", "InstallExitCode.32": "ServerFailedToStart", "InstallExitCode.33": "NeedInsidersWindows", "InstallExitCode.34": "CreateInstallDirFailed", "InstallExitCode.35": "UnsupportedPlatform", "InstallExitCode.36": "ServerTerminatedCVE20201416", "InstallExitCode.37": "UnpackFailed", "InstallExitCode.38": "ChangeDirFailed", "InstallExitCode.AlreadyInProgress": "24", "InstallExitCode.ServerDownloadFailed": "25", "InstallExitCode.NoDownloaderAvailable": "26", "InstallExitCode.NoDownloaderAvailableForStatusCheck": "30", "InstallExitCode.UnsupportedArch": "27", "InstallExitCode.StatusCheckFailed": "28", "InstallExitCode.NeedInsidersArch": "29", "InstallExitCode.ServerTransferFailed": "31", "InstallExitCode.ServerFailedToStart": "32", "InstallExitCode.NeedInsidersWindows": "33", "InstallExitCode.CreateInstallDirFailed": "34", "InstallExitCode.UnsupportedPlatform": "35", "InstallExitCode.ServerTerminatedCVE20201416": "36", "InstallExitCode.UnpackFailed": "37", "InstallExitCode.ChangeDirFailed": "38", "InstallUnpackCode.Success": "success", "InstallUnpackCode.Error": "error", "InstallUnpackCode.MissingFiles": "missingFiles", "uuid": "2e6e54c18a0f", "startMarker": "2e6e54c18a0f: running", "commitId": "f1a4fb101478ce6ec82fe9627c43efbf9e98c813", "quality": "stable", "token": "a11aa1a1-1aaa-1111-a1aa-111a1111a11a", "vscodeAgentFolder": "$HOME/.vscode-server", "allowClientDownload": "1", "forceClientDownload": "0", "cliNameInArchive": "code", "ignoreWgetConfigFlag": " ", "ignoreCurlConfigFlag": " ", "wgetTriesSegment": "--tries=1", "listenArgs": "--on-host=127.0.0.1 --on-port", "getDownloadServerStartTrigger": "2e6e54c18a0f:trigger_server_download", "getDownloadServerEndTrigger": "2e6e54c18a0f:trigger_server_download_end", "getProgressDownloading": "2e6e54c18a0f%%1%%", "getProgressInstalling": "2e6e54c18a0f%%2%%" } [14:30:07.819] Install and start server if needed [14:30:20.341] Checking ssh with "C:\WINDOWS\system32\ssh.exe -V" [14:30:20.346] Got error from ssh: spawn C:\WINDOWS\system32\ssh.exe ENOENT [14:30:20.347] Checking ssh with "C:\WINDOWS\ssh.exe -V" [14:30:20.350] Got error from ssh: spawn C:\WINDOWS\ssh.exe ENOENT [14:30:20.350] Checking ssh with "C:\WINDOWS\System32\Wbem\ssh.exe -V" [14:30:20.353] Got error from ssh: spawn C:\WINDOWS\System32\Wbem\ssh.exe ENOENT [14:30:20.353] Checking ssh with "C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe -V" [14:30:20.356] Got error from ssh: spawn C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT [14:30:20.356] Checking ssh with "C:\WINDOWS\System32\OpenSSH\ssh.exe -V" [14:30:20.407] > OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2 [14:30:20.412] Using SSH config file "C:\Users\ayebdh\.ssh\config" [14:30:20.412] Running script with connection command: "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 53809 -F "C:\Users\ayebdh\.ssh\config" sldafrm32ba01 bash [14:30:20.414] Generated SSH command: 'type "C:\Users\ayebdh\AppData\Local\Temp\vscode-linux-multi-line-command-sldafrm32ba01-159601666.sh" | "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 53809 -F "C:\Users\ayebdh\.ssh\config" sldafrm32ba01 bash' [14:30:20.414] Using connect timeout of 17 seconds [14:30:20.415] Terminal shell path: C:\WINDOWS\System32\cmd.exe [14:30:20.742] > ]0;C:\WINDOWS\System32\cmd.exe [14:30:20.742] Got some output, clearing connection timeout [14:30:20.979] > (ayebdh@sldafrm32ba01) Password: [14:30:20.980] Showing password prompt [14:30:27.185] Got password response [14:30:27.185] "install" wrote data to terminal: "****************" [14:30:27.213] > [14:30:27.808] > Authenticated to sldafrm32ba01 ([100.78.1.46]:22) using "keyboard-interactive". [14:30:27.860] > Start of .bashrc [14:30:27.874] > [14:30:27.973] > No need to copy set_developer_linux.ksh (it's already updated) [14:30:27.987] > [14:30:28.161] > Max Process Memory Size set to value: 67108864 Kb [14:30:28.174] > stty: standard input: Inappropriate ioctl for device [14:30:28.190] > 2e6e54c18a0f: running [14:30:28.207] > Acquiring lock on /users/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43e > fbf9e98c813/vscode-remote-lock.ayebdh.f1a4fb101478ce6ec82fe9627c43efbf9e98c813 [14:30:28.239] > \ln "/users/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43efbf9e98c813/v > scode-remote-lock.ayebdh.f1a4fb101478ce6ec82fe9627c43efbf9e98c813.target" "/user > s/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43efbf9e98c813/vscode-remo > te-lock.ayebdh.f1a4fb101478ce6ec82fe9627c43efbf9e98c813" [14:30:28.253] > Installing to /users/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43efbf9 > e98c813... > 2e6e54c18a0f%%1%% > Downloading with wget > wget download failed > wget: unable to resolve host address 'update.code.visualstudio.com' > printenv: > MANPATH=/usr/share/man:/usr/share/man/overrides:/usr/share/man:/sldafrm32ba0 > 1/product/gec2//current/man:/usr/local/share/man: > XDG_SESSION_ID=34504 > GITUTILSHOME=/sldafrm32ba01/appli/summit_dev/git/git_utils > GEDPROD=/sldafrm32ba01/product > DEVHOME=/users/ayebdh/summit_front > NODE=sldafrm32ba01 > GEDTOOL2=/sldafrm32ba01/product/gec2//current > SHELL=/bin/bash > TERM=screen > HISTSIZE=0 > SSH_CLIENT=100.87.11.189 53816 22 > NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252 > CONTROLM=/opt/controlm/agctm/ctm > PERL5LIB=:/sldafrm32ba01/product/gec2//current/perl/lib > FPATH=:/sldafrm32ba01/product/gec2//current/functions > GEDOLDPATH=/bin:/sbin:/etc:/usr/bin:/usr/sbin:/sldafrm32ba01/product/gec2//c > urrent/perl:/sldafrm32ba01/product/gec2//current/python:/sldafrm32ba01/product/g > ec2//current/ksh:/sldafrm32ba01/product/gec2//current/ksh/loadenv:/sldafrm32ba01 > /product/gec2//current/bin/Linux-x86_64:. > GEHLOG=sldafrm32ba01 > LC_ALL=C > CDPATH=.:/users/ayebdh > USER=ayebdh > STKHOME=/sldafrm32ba01/appli/summit_dev/git/summit_core/SummitCore_x86 > LD_LIBRARY_PATH=/usr/lib:/opt/mqm/lib:/opt/mqm/lib64:/opt/controlm/agctm/ctm > /exe > ENV=/sldafrm32ba01/product/gec2//current/init_gec_rc > THIRD_PARTY_ROOT=/sldafrm32ba01/appli/summit_dev/git/summit_third_party > SYBASE=/sldafrm32ba01/appli/summit_dev/git/summit_third_party/sybase/current > SUMMITVERSION=SummitCore_x86 > PATH=/bin:/sbin:/etc:/usr/bin:/usr/sbin:/sldafrm32ba01/product/gec2//current > /perl:/sldafrm32ba01/product/gec2//current/python:/sldafrm32ba01/product/gec2//c > urrent/ksh:/sldafrm32ba01/product/gec2//current/ksh/loadenv:/sldafrm32ba01/produ > ct/gec2//current/bin/Linux-x86_64:.:/opt/mqm/bin:/opt/zabbix/bin:/opt/controlm/a > gctm/ctm/exe > MAIL=/var/mail/ayebdh > GEDDUMP=/sldafrm32ba01/dump > PWD=/users/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43efbf9e98c81 > 3 > JAVA_HOME=/usr/lib/jvm/java > SUMMITERRDIR=/users/ayebdh/error > GEDINST=/sldafrm32ba01/product/gec2/ > LANG=C > GEDLOGJ=/sldafrm32ba01/dump/plans/logs-20241125 > MY_ENV=DEV > CFTHOME=NO_CFT > GEHPHY=sldafrm32ba01 > KRB5CCNAME=KEYRING:persistent:245723 > HOME=/users/ayebdh > SHLVL=2 > GEDETC=/sldafrm32ba01/product/gec2//current/conf > GEDSGBD=/sldafrm32ba01/sgbd > GEDDEV=/sldafrm32ba01/product/gec2//current/DEV > GEDTOOL=/sldafrm32ba01/product/gec2//current > LOGNAME=ayebdh > SSH_CLIENT_IP=100.87.11.189 > GEDROOT=/sldafrm32ba01 [14:30:28.275] > > SSH_CONNECTION=100.87.11.189 53816 100.78.1.46 22 > GEDAPP=/sldafrm32ba01/appli > GEFCONF=/sldafrm32ba01/appli/etc/sldafrm32ba01.ini > XDG_RUNTIME_DIR=/run/user/245723 > GEIENV=D > geienv=d > SUMMITSPOOLDIR=/users/ayebdh/spool > GTEST_HOME=/sldafrm32ba01/appli/summit_dev/git/git_utils/gtest > SUMMITHOME=/sldafrm32ba01/appli/summit_dev/git/summit_core > HISTFILE=/dev/null > GEDGEC=/sldafrm32ba01/product/gec2//current > _=/bin/printenv > OLDPWD=/users/ayebdh/summit_front > Trigger local server download > 2e6e54c18a0f:trigger_server_download > artifact==server-linux-legacy-x64== > destFolder==/users/ayebdh/.vscode-server/bin/== > destFolder2==f1a4fb101478ce6ec82fe9627c43efbf9e98c813/vscode-server.tar.gz== > 2e6e54c18a0f:trigger_server_download_end > Waiting for client to transfer server archive... > Waiting for /users/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43efbf9e9 > 8c813/vscode-server.tar.gz.done and vscode-server.tar.gz to exist [14:30:28.276] Got request to download on client for {"artifact":"server-linux-legacy-x64","destPath":"/users/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43efbf9e98c813/vscode-server.tar.gz"} [14:30:28.276] server download URL: https://update.code.visualstudio.com/commit:f1a4fb101478ce6ec82fe9627c43efbf9e98c813/server-linux-legacy-x64/stable [14:30:28.277] Downloading VS Code server locally... [14:30:28.294] > > [14:30:30.385] Downloaded VS Code server to c:\Users\ayebdh\AppData\Local\Temp\fd43b15e-05a3-4313-86de-bcb8c3567cb7 [14:30:30.387] Renamed VS Code server to c:\Users\ayebdh\AppData\Local\Temp\vscode_server_1732541430385\vscode-server.tar.gz [14:30:30.387] Preparing to scp to host sldafrm32ba01 [14:30:30.389] Checking ssh with "C:\WINDOWS\system32\ssh.exe -V" [14:30:30.390] Got error from ssh: spawn C:\WINDOWS\system32\ssh.exe ENOENT [14:30:30.390] Checking ssh with "C:\WINDOWS\ssh.exe -V" [14:30:30.392] Got error from ssh: spawn C:\WINDOWS\ssh.exe ENOENT [14:30:30.392] Checking ssh with "C:\WINDOWS\System32\Wbem\ssh.exe -V" [14:30:30.393] Got error from ssh: spawn C:\WINDOWS\System32\Wbem\ssh.exe ENOENT [14:30:30.393] Checking ssh with "C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe -V" [14:30:30.394] Got error from ssh: spawn C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT [14:30:30.394] Checking ssh with "C:\WINDOWS\System32\OpenSSH\ssh.exe -V" [14:30:30.439] > OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2 [14:30:30.443] Expecting scp to be next to ssh at C:\WINDOWS\System32\OpenSSH\scp.exe [14:30:30.443] Testing scp with "C:\WINDOWS\System32\OpenSSH\scp.exe" [14:30:30.494] scp exited with code: 1 [14:30:30.494] Got stderr from scp: usage: scp [-346ABCOpqRrsTv] [-c cipher] [-D sftp_server_path] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] [-X sftp_option] source ... target [14:30:30.494] Using SSH config file "C:\Users\ayebdh\.ssh\config" [14:30:30.495] Copying file to remote with "C:\WINDOWS\System32\OpenSSH\scp.exe" -F "C:\Users\ayebdh\.ssh\config" "vscode-server.tar.gz" "vscode-server.tar.gz.done" sldafrm32ba01:"/users/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43efbf9e98c813" [14:30:30.495] Using cwd: file:///c%3A/Users/ayebdh/AppData/Local/Temp/vscode_server_1732541430385 [14:30:30.495] Terminal shell path: C:\WINDOWS\System32\cmd.exe [14:30:30.840] > ]0;C:\WINDOWS\System32\cmd.exe [14:30:31.021] > (ayebdh@sldafrm32ba01) Password: [14:30:31.022] Showing password prompt [14:30:38.534] Got password response [14:30:38.535] "Copy server to host" wrote data to terminal: "****************" [14:30:38.566] > [14:30:39.123] > Authenticated to sldafrm32ba01 ([100.78.1.46]:22) using "keyboard-interactive". [14:30:39.156] > C:\WINDOWS\System32\OpenSSH\scp.exe: Received message too long 458961211 [14:30:39.193] > C:\WINDOWS\System32\OpenSSH\scp.exe: Ensure the remote shell produces no output > for non-interactive sessions. [14:30:39.405] > Transferred: sent 2868, received 2896 bytes, in 0.3 seconds [14:30:39.421] > Bytes per second: sent 9755.1, received 9850.3 [14:30:40.847] "Copy server to host" terminal command done ```

Anything else?

No response

joshspicer commented 4 days ago

Thanks for taking the time to open an issue. A couple follow up questions:

  1. scp is a "fallback" mode when the remote host cannot download the necessary VS Code server itself, seen at:

    > Downloading with wget
    > wget download failed
    > wget: unable to resolve host address 'update.code.visualstudio.com'

    Is this host blocking outgoing requests in such a way that this makes sense? One way to unblock yourself is allcowing the remote host to reach this domain.

  2. Are you able to manually scp between your host and the remote machine? For example, the command that I see in your log is

    "C:\WINDOWS\System32\OpenSSH\scp.exe" -F "C:\Users\ayebdh\.ssh\config" "vscode-server.tar.gz" "vscode-server.tar.gz.done" sldafrm32ba01:"/users/ayebdh/.vscode-server/bin/f1a4fb101478ce6ec82fe9627c43efbf9e98c813"

Looking at the scp error

[14:30:39.123] > Authenticated to sldafrm32ba01 ([100.78.1.46]:22) using "keyboard-interactive".
[14:30:39.156] > C:\WINDOWS\System32\OpenSSH\scp.exe: Received message too long 458961211
[14:30:39.193] > C:\WINDOWS\System32\OpenSSH\scp.exe: Ensure the remote shell produces no output 
> for non-interactive sessions.

The error message Received message too long 458961211 indicates that there is unexpected output from the remote shell, which interferes with the scp command. This can happen if there are commands in your shell profile files (like .bashrc, .bash_profile, or the windows equivalents) that produce output. I've searched around a bit and it seems like a relatively common problem - here are some steps you can try: https://www.websentra.com/troubleshooting-received-message-too-long/

joshspicer commented 3 days ago

Same as https://github.com/microsoft/vscode-remote-release/issues/10256