vscode-remote-release icon indicating copy to clipboard operation
vscode-remote-release copied to clipboard

Support ssh to IBM LinuxOne (Red Hat Enterprise)

Open ayatokura opened this issue 6 years ago • 45 comments

  • VSCode Version: Insider 1.36.0
  • Local OS Version: macOS High Sierra 10.13.4
  • Remote OS Version: Red Hat Enterprise Linux Server release 7.6 on IBM LinuxOne
  • Remote Extension/Connection Type: SSH

Steps to Reproduce:

  1. Connect to remote system
  2. "Can't connect to linux: unreachable or note Linux x86?64 (Linux s390x)"
linuxone

Does this issue occur when you try this locally?: Yes Does this issue occur when you try this locally and all extensions are disabled?: Yes

ayatokura avatar Jun 16 '19 17:06 ayatokura

Using the VScode insider V1.39.0 insider Attempting to connect to a RedHat V7.6 server running on s390x. Get the following error upon connection. Add me to the list requesting this feature.

Screen Shot 2019-10-03 at 10 44 56 PM

phrankemp avatar Oct 04 '19 02:10 phrankemp

I have a requirement for this features as well.

fosslou avatar Oct 04 '19 12:10 fosslou

Please add me to the list of users requesting this feature.

loub52 avatar Oct 07 '19 13:10 loub52

Please add support for s390x! Unsupported architecture: s390x

elswork avatar Apr 18 '20 01:04 elswork

Please add support for s390x.

chee-ip avatar Jun 24 '20 12:06 chee-ip

Please add support for remotes that are s390x

max-cool avatar Jul 30 '20 18:07 max-cool

Looking forward to s390x/Cp1047 support too.

napovilas avatar Nov 09 '20 11:11 napovilas

Hi Guys, i am trying this on Ubuntu 18.04 S390x, same Problem. Can you please add architecture s390x to the list of supported architectures for the vscode ssh extention? If you need access to a Linux running on S390x and you do not have access to an IBM Mainframe or LinuxONE System you could use the wonderful hercules emulator. z/Linux under hercules is not the fastest experience but it does work beautifully. Be aware that as of this writing Ubuntu 20.04 does not work under hercules though. You need to use 18.04. You can download an installation image from here. There are some great youtube videos on how to set this up, for example this one and a more specific video about networking issues can be found here.

thanks in advance and greetings from germany

cybersorcerer avatar Dec 22 '20 09:12 cybersorcerer

Actually, if you need to access a real Linux on Z (s390x) system, you can request a VM from LinuxONE Community Cloud for developers. You can sign up from here.

chee-ip avatar Dec 22 '20 13:12 chee-ip

Please! Add support for s390x architecture.

pankzkmr avatar Jan 18 '21 08:01 pankzkmr

I'll add my request for an s390x port of the VSCode Remote Server. I'd do it myself if the code was open source.

FWIW, I'll be running my net-facing server on Ubuntu on Hercules on a Raspberry Pi, just because. Once upon a time, I was the lead maintainer and project manager for Hercules.

jmaynard avatar Feb 03 '21 17:02 jmaynard

As an IBM Z Champion, please consider this.

catherdersoftware avatar Feb 24 '21 21:02 catherdersoftware

Also can IBM i be considered.

tb-mtg avatar Apr 07 '21 05:04 tb-mtg

+1 for the feature

rohitsakala avatar Sep 10 '21 08:09 rohitsakala

I was able to get this working with selective tweaks to the installed .vscode-server and a wrapper around uname. (main issue is the native executable for node and the native shared objects for node-pty and spdlog. I understand the need to control for support purposes, but would it be possible to add an extension point here for 3rd party support of "unsupported" architectures?
uname.txt

DanGritter avatar Sep 15 '21 16:09 DanGritter

I was able to get this working with selective tweaks to the installed .vscode-server and a wrapper around uname. (main issue is the native executable for node and the native shared objects for node-pty and spdlog. I understand the need to control for support purposes, but would it be possible to add an extension point here for 3rd party support of "unsupported" architectures? uname.txt

I was able to do similar and those x86_64 ELF objects in node_modules were rebuilt and node v14 installed. However, things still don't start up when I connect. I get back: Connection error: Unauthorized client refused.

nealef avatar Sep 30 '21 02:09 nealef

I was able to do similar and those x86_64 ELF objects in node_modules were rebuilt and node v14 installed. However, things still don't start up when I connect. I get back: Connection error: Unauthorized client refused.

We had to tweak the out/vs/server/remoteExtensionHostAgent.js file to get past this. (essentially bypass the validation). Additionally ended up installing/setting up qemu to run cross-architecture executables since a number of the remote extension plugins have the same issue (see https://ownyourbits.com/2018/06/13/transparently-running-binaries-from-any-architecture-in-linux-with-qemu-and-binfmt_misc/)

DanGritter avatar Oct 04 '21 14:10 DanGritter

Is there a tool to unpack/reformat that code (the .js file you referenced)? It's almost unreadable.

We have a working dotnet command for s390x working and I rebuilt several of node modules so what other plug-ins did you discover are problematic?

Thanks for the assistance... Neale

nealef avatar Oct 05 '21 00:10 nealef

I use js-beautify (npm install -g js-beautify) to "un-uglify" the js source.

cpptools was one example of a plugin that was problematic.

DanGritter avatar Oct 05 '21 12:10 DanGritter

Found one and was able to bypass the validation problem but now it complains about a reconnection token.

nealef avatar Oct 05 '21 12:10 nealef

@DanGritter It appears there's been a lot of changes. There's a node module called vsda.node ("VS Code debug handshake module") that does a lot of work that just comes as an ELF binary.

try {
                    const oe = J.__$__nodeRequire("vsda");
                    j = new oe.validator, re = new oe.signer
                } catch {}
                let x;
                (function(oe) {
                    oe[oe.WaitingForAuth = 0] = "WaitingForAuth", oe[oe.WaitingForConnectionType = 1] = "WaitingForConnectionType", oe[oe.Done = 2] = "Done", oe[oe.Error = 3] = "Error"
                })(x || (x = {}));

The code:

node_modules/vsda:
build  index.js  package.json  test.js

node_modules/vsda/build/Release:
vsda.node

The executable appears to be a C++ program doing signing, validating, and handshaking.

nealef avatar Mar 11 '22 06:03 nealef

+1 Would make things much easier for the whole IBM Firmware development team and a lot of other people.

IBM-Habor avatar May 03 '22 08:05 IBM-Habor

+1 Kindly add this in next release

manogy avatar Jun 27 '22 11:06 manogy

There has been plenty of past requests and offers to contribute to this feature. I understand that this team is busy with their priorities; we would appreciate a response, update, or path forward with contributing to this feature since we want a seamless experience with us VS Code.

aamarin avatar Sep 22 '22 19:09 aamarin

+1

spufidoo avatar Dec 20 '22 08:12 spufidoo

+1

marshabr avatar Dec 20 '22 19:12 marshabr

Please! Add support for s390x architecture. +1

jmzhai avatar Jan 05 '23 00:01 jmzhai

+1

manogy avatar Feb 08 '23 08:02 manogy

Please add!!! +1

ziosstaff avatar Mar 28 '23 23:03 ziosstaff

+1

mohammedzee1000 avatar Apr 18 '23 10:04 mohammedzee1000