SSH Server not available?

I have a program that emulates a device which is relative expensive. It worked fine as long as the connection was established by a simple Telnet-like TCP connection. Now the manufacturer has decidet to switch to secure communication and replaced the firmware and the driverst to allow only SSH connections.

So i want to replace the communication in my emulator to SSH, where my laptop is the SSH client and the emulator needs to be the SSH server. Unfortunately i found only flows and nodes that enables me to make my device an SSH client, no server seems to available.

Have i overlooked something or is this a fact?

All the best,
Alexander

An SSH server needs to serve up an operating system SHELL. I don't think that is what node-red is really for.

You need to know what SHELL the device is running. Embedded devices often have a simplified shell.

Well, it is an embedded device, you are right. I was not aware that SSH is so deep in the operating system, i thought its only a secure replacement of telnet.
Looks like i need another solution.

THX for the response!

No problem, you may well still be able to put together a simulated shell though, for example, something called BusyBox is often used on embedded Linux systems. Never tried though so I don't have an actual answer I'm afraid.

If we knew more about what you are trying to achieve with the simulated SSH, we could probably help further. For example, you might only need to simulate a file transfer?

I do some programming of Extron controllers. There are 2 types of programming tools: Configurator and Scripter. Configurator has limited functions; i can open TCP, UDP or serial ports, i can transmit data but i cannot receive and parse data. This is only handeled by drivers provided by extron.
One of the disadvantages of the configurator is that there is no form of intersystem-connection. So i use a virtual sound processor, which has a lot of logical nodes and some analog nodes (mutes and volumes), that allows me to transmit bits and integers from one system to another, if i open connections to the virtual device from both controllers.

Scripter is a python implementation. For existing programs, most of which are configurator implementations, the efford to rewrite the program to scripter is too high.

Never the less, scripter has a very easy implementation of SSH:
Client Program
client = EthernetClientInterface('192.168.5.179', 10000, 'TCP'
client.SSLWrap(
certificate='clientCert', #Toolbelt Alias for the Machine certificate
ca_certs='myCACert' #Toolbelt Alias for the Certificate Authority certificate
)

Server Program
serv = EthernetServerInterfaceEX(10000, 'TCP')
serv.SSLWrap(
certificate='serverCert', #Toolbelt Alias for the Machine certificate
ca_certs='myCACert' #Toolbelt Alias for the Certificate Authority certificate
)

You see, it's a quite different way of thinking about communications. I never did some html / css coding, i never did programming on opsys-level. Reading your answer required me to do some google search to understand what you were saying. And maybe you can understand me sitting here with an open mouth seeing what i have to configure for an SSH-Client in node red ...

Anyway, it seems it is still possible to use 'legacy' drivers, which allow telnet communications. I will test that first before coming back to this thread.

All the best,
Alexander

I think you have a number of options open to you here. You could continue to use Python and use Node-RED as the orchestrator. Or you could maybe reproduce that code in Node-RED. Though to be honest, I've never looked at whether the TCP nodes have TLS/SSL integration, certainly the http nodes do but I've never had a need to play with the TCP nodes to that degree.

A quick look would seem to indicate that they don't have TLS/SSL integration and I don't know of a separate wrapper as in your Python example.

Of course, you also have the option of utilising native node.js and other node.js libraries so if there is a library that does what you want, it is generally not terribly hard to integrate that. Have a look on npmjs.org to see if something looks promising.