SSH using Your Apple IIe Retro Computer & Get Stuff Done!

Haseeb Chaudhary
5 min readFeb 26, 2022

Want to do something completely pointless yet a lot of fun? Or perhaps you just want to use alternative tech to get away from the ads, tracking and social networks.

If like me you feel that being in front of an awesome setup means you feel your productivity is impacted, too many cool apps to distract you…then here’s an alternative way to do things.

Essentially, this is a rundown on how you do something useful with your retro computer that is kind of useful; yet, perhaps a lot more rewarding….connect to other computers using regular SSH, which is the accepted way to connect to any computer in a secure way. From there you can do what ever you like once you’re connected, such as: build applications, code api’s…basically install and run whatever you like.

Personally I have a few side kick projects I run on linux servers hosted in the cloud. I effectively use my retro computer, Apple IIe in my case, to work on these projects. There a few limitations like not knowing how to copy and paste to clipboard…hope to have that sussed soon. Anyway, here comes a step by step breakdown of what you need to do.

What you need:

Modern computer: A computer that will run a Telnet server, I used my Macbook Pro.

An Apple IIe computer which is Enhanced. Enhanced Apple //e means you have four integrated circuit chips in your Apple IIe — these are more powerful chips. There is a ROM for characters being more pretty, two monitor ROMS for better scrolling etc. and a new microprocessor. This is the 6502 chip!!! You can buy a kit to do this on any //e.

Super Serial Card (SSC) for your Apple II.

Wifi modem for your Apple II, I use a wimodem232 and explain how to set it up here.

■ Some patience, this whole thing is a bit fiddly.

Get the reverse shell setup on the Macbook Pro

You need to have a listener setup waiting for a connection and then be able to deliver a reverse shell. Socat is ideal for this. Here is what to do.

brew install socat
cd /Library/LaunchDaemons
sudo su
vi login.plist

Then add the following

<plist version=”1.0">
<dict>
<key>Label</key>
<string>com.retrogeeks.bbs</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/socat</string>
<string>-</string>
<string>EXEC:”/usr/bin/login -p”,pty,setsid,setpgid,stderr,ctty</string>
</array>
<key>EnvironmentVariables</key>
<dict>
<key>TERM</key>
<string>vt100</string>
</dict>
<key>SessionCreate</key>
<false/>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>Bonjour</key>
<false/>
<key>SockProtocol</key>
<string>TCP</string>
<key>SockServiceName</key>
<integer>6666</integer>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>
brew install socat
brew install telnetd
socat tcp-listen:6666, tcp:localhost:23 &
telnetd -debug 23 &

You can now test a telnet to your host on port 6666 to make sure it accepts connections.

Now reboot your Mac and try telnetting again. You will be prompted to allow socat to see your local directories on your Mac. Accept.

You should now be all set.

The plist daemon makes sure you do not get strange characters from your Apple II. A useful link here https://bytecellar.com/media/com.retrogeeks.bbs.plist?fbclid=IwAR0PEXRddgNwVxtsDtnv0OoG50zkYNiylxGw5YmgwLflEDmIzQBeD_P4yA4.

Dip switch settings on SSC

Make sure the serial connection for your SSC is configured for ProTerm3.1.

Detailed here are the specific dip switch settings for the SSC when using Proterm 3.1 for telnet connections.

The actual dip switch settings used on my SSC for Proterm3.1

Install Proterm 3.1

Even installing running Proterm 3.1 (PT) was a challenge. This is basically because you need to make sure you have the correct hardware spec and serial card setup. I’ll explain this as we go along.

When running the install choose the Generic 9600 baud modem
Choose DEC VT-100 modem emulator and telnet into the default high port 6666 used by socat.

My Apple //e Proterm3.1 screen for the first connection to my home Macbook Pro

Connection to the outside world

The idea is to connect into to your home Macbook by connecting to its IP address and listening port for the reverse shell. The telnet connection really. You should be able to do this by clicking Dial on the Proterm3.1 software connect screen. From there run ssh to any internet host. For me it didn’t work.

I did also try the following but didn’t get anywhere

socat tcp-listen:6666, tcp:localhost:23telnetd -debug 23

Failed, I tried telnetting to various different ports and nada! just strange text appearing upon logging. I slept on it and the next morning I had to reboot my machine for some mundane stuff working for the man.

I tried troubleshooting. Beginning by having a look at listening services and strangely found a bunch of what seemed to be a reverse shell listening.

ps -ef | grep login0   129     1   0 16Feb22 ??         0:00.32 /System/Library/CoreServices/logind501   144     1   0 16Feb22 ??         1:23.99 /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow console501   494     1   0 16Feb22 ??         0:00.02 /System/Library/PrivateFrameworks/login.framework/Versions/A/XPCServices/LoginUserService.xpc/Contents/MacOS/LoginUserService0   526   452   0 16Feb22 ttys000    0:00.06 login -pfl haseeb /bin/bash -c exec -la zsh /bin/zsh501  1618  1279   0 16Feb22 ttys001    0:00.68 /bin/zsh --login0  3071   452   0 16Feb22 ttys005    0:00.05 login -pfl haseeb /bin/bash -c exec -la zsh /bin/zsh0 81556   452   0 18Feb22 ttys012    0:00.13 login -pf haseeb0  3773   452   0 16Feb22 ttys013    0:00.04 login -pfl haseeb /bin/bash -c exec -la zsh /bin/zsh

Could it be that I have a reverse shell ready to go? I tried the connection. Wow I got a login prompt. I tried logging in. It worked! I was logged into my Macbook. I then did an ssh to my internet box, a project I have going on. I really couldn’t believe it. The ssh session not only worked it was responsive. The keyboard was ace and just felt right.

I now try to use my Apple //e for all internet SSH stuff and to be honest it works perfectly. Goodbye using my modern laptop for most of my work!!!

Useful links:

--

--