VOGONS


First post, by radozd

User metadata
Rank Newbie
Rank
Newbie

Hello!
I'd like to introduce to you my new small project: https://github.com/radozd/dosssh

The attachment dosssh.png is no longer available

DOSSSH runs on a 386 or newer PC in 16-bit real mode, using mTCP and a packet driver. No DOS extender required.
It supports VT100/xterm-style terminal emulation, modern SSH encryption, host key verification, and UTF-8 conversion to DOS code pages, including CP866.
I originally wrote it to access my OpenWrt router from an old DOS machine, after having trouble getting existing SSH clients to work.
It's still a new project, so testing on different hardware, bug reports and feedback are very welcome!

Reply 1 of 14, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

Excellent! I especially like the attention to detail with the random number generation.

Reply 2 of 14, by radozd

User metadata
Rank Newbie
Rank
Newbie
mbbrutman wrote on 2026-11-03, 15:40:

Excellent! I especially like the attention to detail with the random number generation.

Thanks!

DOSSSH 1.1 is out, with some significant speed improvements.
1.2 will follow as soon as we get my mTCP fixes sorted out on GitHub. 😀

Reply 3 of 14, by Yoghoo

User metadata
Rank Oldbie
Rank
Oldbie

Is public-key user login planned or is it just not feasible? Tried to use it but as I only allow key logins on all my servers I can't really use it.

Reply 4 of 14, by radozd

User metadata
Rank Newbie
Rank
Newbie

Honestly, no idea yet. First, I need to get what’s already there into decent shape and figure out its limitations and how useful it actually is.

Reply 5 of 14, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Thank you for this and for the FTP project. It looks like you actually put some effort into it and didn't just vibe code it and have the AI spit out a 100,000 word emoji-filled triple-redundant novel in the readme.md like so many other projects these days.

World's foremost 486 enjoyer.

Reply 6 of 14, by radozd

User metadata
Rank Newbie
Rank
Newbie

Thanks! FTP2P was written the old-fashioned way. For this project, I used AI to check the existing crypto code and verify protocol compliance. I know the basics and have some experience with cryptography, but it's not really my field. AI is good at finding security vulnerabilities, so I think it's worth taking advantage of that while we can.

Reply 7 of 14, by mr.cat

User metadata
Rank Member
Rank
Member
radozd wrote on 2026-11-06, 05:28:

Thanks! FTP2P was written the old-fashioned way. For this project, I used AI to check the existing crypto code and verify protocol compliance. I know the basics and have some experience with cryptography, but it's not really my field. AI is good at finding security vulnerabilities, so I think it's worth taking advantage of that while we can.

Appreciate the full disclosure, thanks 😁
I guess you know this already, but something to bear in mind is the LLM sycophancy. Meaning they don't really aim to produce the correct answer, but one that people are likely to find agreeable 😁
I'm not sure if this problem has been tackled with the frontier models (I tend to avoid the cloud).
With the smaller models I got the best results when I had some domain knowledge myself.

Reply 8 of 14, by radozd

User metadata
Rank Newbie
Rank
Newbie

I'm not sure how sycophancy is relevant in this case.

There's a cryptography research paper I'm referring to, and the code is based on that paper. I link to both in the project description. I assume the paper has been peer-reviewed, while the code probably hasn't, even though it already works.
My approach is to give the existing code to AI and ask it to look for weaknesses. Some of these are things I could find myself, but that would require diving pretty deep into the subject. I'm not sure that's the best use of my time. The alternative is to find an expert and ask or pay them to do an audit. But how do you assess how good that expert is? I spent 10+ years in academia and have seen this problem firsthand.
We see examples of AI finding vulnerabilities that human developers and experts have missed. I think it's worth using this capability while we have it.

Of course, if someone is willing to review the code for free and put their name on the results, I'd be happy to have them do it.

And just to be clear: I'm not asking AI to praise my code or vibe-code something and then praise its own work. I'm asking it to find problems.

Reply 9 of 14, by mr.cat

User metadata
Rank Member
Rank
Member

Yes, I think that's a good approach. If you can somehow demonstrate a problem exists in the code, it doesn't really matter how it was found.
They are doing the same with the Linux kernel, can't really argue with the results.

EDIT: To elaborate a bit, I don't think that LLM sycophancy problem affects you because the model isn't generating anything you can't verify yourself.

Reply 10 of 14, by radozd

User metadata
Rank Newbie
Rank
Newbie

I've made a few more updates since v1.1. Modifier keys are now supported in the terminal, and I've added mouse support, so you can use the mouse in MC now too. I also made the first-run setup a bit simpler.

Everything seems to work well now, and I'm pretty happy with it. I think it's ready for everyday use. Still haven't decided what to do about public-key authentication. Need to look into that when I have time.

Reply 11 of 14, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Here's a question. Since it's in 16 bit real mode, why not produce a version that doesn't require a 386?

I am also seconding the motion for public key auth.

World's foremost 486 enjoyer.

Reply 12 of 14, by radozd

User metadata
Rank Newbie
Rank
Newbie
keenmaster486 wrote on Yesterday, 21:57:

Here's a question. Since it's in 16 bit real mode, why not produce a version that doesn't require a 386?

I am also seconding the motion for public key auth.

Anything older than a 386 doesn't have 32-bit registers and is thus too slow.

Reply 13 of 14, by keenmaster486

User metadata
Rank l33t
Rank
l33t
radozd wrote on Today, 04:23:

Anything older than a 386 doesn't have 32-bit registers and is thus too slow.

Too slow to connect? Or too slow during usage?

Because I'm willing to wait longer to connect. Otherwise I understand.

Are there compromises that could be made to gain speed at the expense of security, perhaps?

World's foremost 486 enjoyer.

Reply 14 of 14, by radozd

User metadata
Rank Newbie
Rank
Newbie
keenmaster486 wrote on Today, 16:07:
radozd wrote on Today, 04:23:

Anything older than a 386 doesn't have 32-bit registers and is thus too slow.

Too slow to connect? Or too slow during usage?

Both. Even on a 386, using 16-bit registers is still too slow for SSH. 32-bit code, on the other hand, works wonders.