Show HN: Pyrexecd – Standalone SSH Server for Windows
github.com
github.com
Is there anything popular written in Go that supports Windows on purpose? When securing remote access I prefer to follow the wisdom of the crowds. The closest I've found most recently mentions success via the Windows Subsystem for Linux:
- They're both native Windows apps - no Cygwin etc. OpenSSH is C, Pyrexecd is Python.
- OpenSSH has a service, Pyrexecd is a system tray app (despite the 'd' in the name)
- OpenSSH launches the normal shell, Pyerexecd launches cmd
- Pyrexecd shows popups for incoming connections, OpenSSH doesn't have this feature.
- Pyrexecd is for single users.
Honestly it's hard to compete with Microsoft's OpenSSH port (particularly if the plan to merge it into the mainline OpenSSH code happens).
It's cool code though - Python on Windows doing SSH stuff is useful as a systems management tool outside of this.
I will say, from my limited experience w/ MS's fork, they take a bit of a hacky approach. For instance, I just wanted standalone sshd, but they really want you to run it as a service and install/uninstall with PowerShell scripts [0].
In general though, the open SSH fork seems to support pluggable shells and has decent pty support (it fires up a separate shellhost.exe process per client)
0 - https://github.com/PowerShell/Win32-OpenSSH/issues/909#issue...
Likewise sshd is typically deployed via a package manager that calls Bourne shell or bash, posh seems a reasonable equivalent. What would you use instead?
I have run sshd locally w/ an sshd_config and I would expect that I can run it standalone. My project was to do a self-contained ssh-over-tor setup. So I could have an sshd_config like so:
Port 5678
HostKey /home/myuser/sometempdir/ssh_host_rsa_key
HostKey /home/myuser/sometempdir/ssh_host_dsa_key
HostKey /home/myuser/sometempdir/ssh_host_ecdsa_key
HostKey /home/myuser/sometempdir/ssh_host_ed25519_key
PidFile /home/myuser/sometempdir/sshd.pid
UsePam yes
And run this: /usr/sbin/sshd -f /home/myuser/sometempdir/sshd_config -E /home/myuser/sometempdir/sshd.log
Whether I run this manually, as a service daemon on the part of the OS, etc should not affect the core piece. For my project, I even considered going as far as statically linking Open SSH and Tor, but never completed it.