Live data from Hacker News

A native graphical shell for SSH

probablymarcus.com

11–20 of 239 posts

Re: A native graphical shell for SSH

#11
post #7

Earlier quoted context omitted.

No. A shell is any user interface. Windows shell is explorer.exe and it used to be possible to change that via a config line in a system INI file. SSH protocol also isn’t just for CLI work. It supports file transport (eg SFTP), TCP/IP forwarding and even SOCKS HTTP proxying. You also used to be able to run GUI applications over SSH via X11.

You have a very loose definition of a shell that conflicts with about 40 years of history.

I wondered if this would be controversial. It all depends where you grew up.

> Cairo, like Chicago, had a new shell (Microsoft’s favorite word for the user interface for launching programs and managing files) and a new file system

https://hardcoresoftware.learningbyshipping.com/p/020-innova...

When I worked at Microsoft 2010 - 2014, the word "shell" was still used in this way. I decided to say "graphical shell", to make it clearer.

Re: A native graphical shell for SSH

#13
post #7

Earlier quoted context omitted.

No. A shell is any user interface. Windows shell is explorer.exe and it used to be possible to change that via a config line in a system INI file. SSH protocol also isn’t just for CLI work. It supports file transport (eg SFTP), TCP/IP forwarding and even SOCKS HTTP proxying. You also used to be able to run GUI applications over SSH via X11.

You have a very loose definition of a shell that conflicts with about 40 years of history.

Not really no. I’ve been using shells and authoring new ones for around 40 years across a variety of platforms. The term has always been pretty loosely defined because as technology evolved the term “shell” was borrowed. So like I said, a shell can refer to a graphical core just as much as a text-based one. You can get web shells too.

The original intent was that a shell is a thin wrapper on top of the OS to expose the hosts capabilities. But that hasn’t been an apt description for most of those 40 years.

Re: A native graphical shell for SSH

#14
i'm trying to understand how outer shell works here. on the website you give the following as your motivation:

> Apps like Jupyter and Tensorboard are not typically visible to standard web browsers if they’re running on remote servers, because it would be terribly unsafe to let the whole internet touch this app. Instead, they run on a local port on the server, which your computer can’t access directly.

> Classically, to get access to these, you had to open a new terminal and run:

> ssh -L 24601:localhost:8889 mrcslws@lambda4.mycompany.com &

> ssh -L 24602:localhost:6006 mrcslws@lambda4.mycompany.com &

is this true? isn't the normal thing just to do this ssh forwarding for prototyping, then for deployment, you set up a website like myjupyternotebook.com, and then set up auth so that others can't access it. HTTP basic auth is not too much work.

if you want SSH, not HTTP, to be what's publicly exposed, there's other options too, like putting it behind a VPN or tunnel.

all this to say, outer loop is super cool, but I don't get it. I must be missing something about why you built it, so could you help me understand?

Re: A native graphical shell for SSH

#15
post #7

Earlier quoted context omitted.

No. A shell is any user interface. Windows shell is explorer.exe and it used to be possible to change that via a config line in a system INI file. SSH protocol also isn’t just for CLI work. It supports file transport (eg SFTP), TCP/IP forwarding and even SOCKS HTTP proxying. You also used to be able to run GUI applications over SSH via X11.

You have a very loose definition of a shell that conflicts with about 40 years of history.

I don't have a dog in this fight, and anyway dogfighting is bad, but the intro to the Wikipedia article[0] reads:

> An operating system shell is a computer program that provides relatively broad and direct access to the system on which it runs. The term shell refers to how it is a relatively thin layer around an operating system.

> Most shells are command-line interface (CLI) programs. Some graphical user interfaces (GUI) also include shells.

The last line I think supports the notion that the term "shell" at least implies a CLI, but I can understand both positions.

---

0. https://en.wikipedia.org/wiki/Shell_(computing)

Edit: I'm shite at formatting on HN

Re: A native graphical shell for SSH

#16
That's interesting idea. If we put into CLI with some ANSI escape code, that may become something real. Imagine a normal terminal app just render part of the UI in web and communicating in UNIX socket. While doing the fancy UI, everything is still controllable with keyboard, and optionally with mouse. The UI will fallback to text UI for older terminal

Re: A native graphical shell for SSH

#18

That's interesting idea. If we put into CLI with some ANSI escape code, that may become something real. Imagine a normal terminal app just render part of the UI in web and communicating in UNIX socket. While doing the fancy UI, everything is still controllable with keyboard, and optionally with mouse. The UI will fallback to text UI for older terminal

So, uh... X11? VNC? RDP?

Re: A native graphical shell for SSH

#19
One of the more interesting pieces of Microsoft software is the Windows Admin Center where it's a web app to configure a Windows Server. Ideally, it was made for core installs where there's no GUI but it's there as a viable web management panel.

The tool from OP and WAC are pretty similar in terms of functionality and usecase. Why would you want this? Well, imagine your team needing to be able to do server functions but you have less technical team members to do it for you, which is very often the case in big places, most people are familiar with the web browser and having a website to do these sorts of actions makes it easier to have things done in one place without a lot of tools like Remote Desktop, SSH, WinRM, etc. configured.

Post reply on HN