VOGONS


First post, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie

I've spent a few hours searching for an SSH client that can connect from Windows 98 (in DOSBox) to modern Windows or macOS systems, without success. Have I missed something obvious? Is there an SSH client out there for a Win98 guest that can connect to a modern host system?

As they used to say on the radio, "Youth wants to know!"

Reply 1 of 14, by davidrg

User metadata
Rank Member
Rank
Member

TeraTerm is probably your best bet - it can SSH from Windows NT 4.0 at least.

Edit: Perhaps TeraTerm is not so up-to-date - it seems its SSH implementation is based on PuTTY 0.70 (2017-07-08) and OpenSSL 1.1.1k (2021-03-25) both of which likely have known security issues (certainly OpenSSL does). But perhaps that doesn't matter in this particular case.

Reply 2 of 14, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie

Unfortunately, that disqualifies it. I can use WinSCP and FileZilla to connect to remote sites, but a local host running Windows 10/11 or recent macOS versions requires newer protocols. I haven't found anything that works yet, unfortunately.

Reply 3 of 14, by davidrg

User metadata
Rank Member
Rank
Member

Yeah, SSH on vintage windows is a bit of a challenge. The terminal emulator I maintain runs on all non-16bit Windows except sort of NT 3.1 but I can't support SSH on anything older than XP SP3 at the moment due to OpenSSL 3.0.x not supporting vintage Windows any more and the SSH client library, libssh, requiring a modern compiler (which also means no SSH support on Itanium as even Visual C++ 2010 is too old).

I know various people have backported OpenSSL to Windows 9x but none of the projects seem to reliably keep up with OpenSSL releases - the patches in the teraterm repo are for OpenSSL 1.1.1 (goes out of support in two weeks), while blackwingcat has OpenSSl 3.1.0 (less out of date, but still out of date) but doesn't seem to publish patches.

Whats your use case for SSH on Windows 98?

Reply 6 of 14, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie

Thank you for these suggestions. PuTTY 0.78 isn't compatible with Win98. I tried Azami's port of 0.76, but it gives me an error saying that OLE32.DLL didn't load. The command-line utilities report NO PACKET DRIVER found, and the readme says that a Wattcp environment is needed - but I don't think that works under Windows 9x.

But thank you for sending these - this may be getting closer to a working solution.

Reply 7 of 14, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie
davidrg wrote on 2023-08-23, 22:26:

Whats your use case for SSH on Windows 98?

I'm setting up systems that run under DOSBox-X in Windows and macOS, and want to be able to exchange files with the host while Win98 is running. On macOS, I have a AppleScript-based setup that copies files to the Win98 desktop when it starts up, and copies files from a specified folder in Win98 to the host desktop when Win98 shuts down. I'm using AutoIt under Windows to do the same things. But it would be easier and smoother to be able to exchange files between guest and host while Win98 is running. As far as I can tell SSH seems to be the only possible practical way to do this.

Reply 9 of 14, by davidrg

User metadata
Rank Member
Rank
Member

Ahhh, well you don't need SSH for that.

The terminal emulator I maintain is actually the windows port of C-Kermit. And C- Kermits "thing" is making connections to other computers and transferring files - it's what it was originally built to do. It just has terminal emulation abilities on Windows/OS2/MS-DOS because normally you'd be exchanging files with a unix/vms/mainframe-type system and so need a terminal in order to connect to it.

So you could certainly use that - its fully scriptable and has a server mode so you could run a server on one machine and have a script to push/pull files to/from the server. There are some notes on the Kermit website on how to do this ad-hoc (https://www.kermitproject.org/ck10clientserver.html) plus it has a stand-alone server mode (IKSD) that can run as a service on Windows NT/2000/XP/etc or daemon on Unix.

Using FTP might be another option - you could run an FTP server on your modern machine and connect to it from Windows 98. C-Kermit for Windows has a built-in scriptable FTP client but no doubt there are other command-line ones you could drive with batch files or other automation tools too.

Reply 10 of 14, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie
davidrg wrote on 2023-08-24, 03:53:

Ahhh, well you don't need SSH for that.

Of course you're right. And I should have focused on this earlier.

Because this is a system that I want to distribute publicly (it will require the user to drop a Windows 98 SE installation ISO on the application before it will run), I was looking for a solution that wouldn't require installing other software on the host. But again, you are absolutely right. I just installed a free FTP server on macOS, and was able to transfer files to and from macOS host and the Win98SE guest using the WinSCP client that I've installed on the Win98SE system. Presumably I can do something similar on Windows. This turns out to be very simple for an end-user to do.

EDIT: Yes, FileZilla Server worked perfectly for transferring files between Windows 11 and Win98.

When I go public with this system, I'll include the relevant instructions. Thank you again.

Reply 11 of 14, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

I recently built current PuTTY such that it would run modern SSH cryptography--albeit with file transfers going super slowly--even on Windows 95a on a 486DX-33. I believe it needed msvcrt.dll installed (don't remember whether SPEU.exe was sufficient or if I ended up installing IE 5.5) and possibly Winsock 2 as well. I ended up building my own mingw-w64 toolchain for i486 (otherwise the C runtime startup code includes i686 instructions even with -march=i486 for PuTTY) and I had to disable AESNI and some of the other instruction set things in the CMake files to eliminate the CPUID instructions. PuTTY helpfully checks CPUID before trying to call AESNI and other fancy instructions, but forgets to see if CPUID is even supported. I believe there were also one or two Windows API calls that needed commenting out as well. I will try and check my notes.

If you do much modern SSH on Win9x-era machines, one thing you might try is promoting ChaCha20-Poly1305 as a preferred cipher suite ahead of AES. On processors without AESNI (everything 32-bit only), it is faster than AES.

Reply 12 of 14, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie

With thanks to everyone here, I've posted a macOS version of a DOSBox-X-based Windows 98 SE system here:

REMOVED

It needs to be unlocked by dropping on it an .iso of the Windows 98 SE installation CD.