Thanks! It always bugged me that Windows didn't have a sshd, since it's so popular outside of Windows. I thought the reason for it not being added would be admitting a failure somewhere - RDP not winning or something. Seemed odd to prevent a way into Windows Server.
No. It was a fundamental conceptual difference in the operating system. After Xenix, Microsoft did not use a terminal paradigm in its operating systems. They all had a "console" paradigm, where instead directly attached VDUs, keyboards, and mice had explicit API support as first-class devices. Because they targetted "personal computers" where one knew from the firmware up that the machine had a VDU, a keyboard, and (possibly) a mouse.
For a long time, so long that I had a widely used 2 decades old Frequently Given Answer about it, Windows NT had no way to capture console I/O, no way of waiting on consoles for buffer changes and to inject back-end input events. No way to do what a SSH server would need to do in order to capture and send/receive that I/O over a network.
Then along came Windows Terminal, and I finally got to change the answer in 2018.
RDP is still the best remote desktop protocol - so much so that Gnome on Linux uses it for desktop sharing.
But, of course, it's a remote desktop protocol. Meanwhile Windows Server has been steadily moving onto command line & PowerShell for system administration for the past 12 years or so. The bespoke solution for remote admin has been remote PowerShell for a while, so ssh is arguably competing with that.
You can also run a ssh server in WSL2. You'll need to proxy connections to it or run a vpn though to have it visible from the outside. I use tailscale.
Since windows 10/windows server 2019 afaik.
https://news.ycombinator.com/item?id=15904265
Thanks! It always bugged me that Windows didn't have a sshd, since it's so popular outside of Windows. I thought the reason for it not being added would be admitting a failure somewhere - RDP not winning or something. Seemed odd to prevent a way into Windows Server.
No. It was a fundamental conceptual difference in the operating system. After Xenix, Microsoft did not use a terminal paradigm in its operating systems. They all had a "console" paradigm, where instead directly attached VDUs, keyboards, and mice had explicit API support as first-class devices. Because they targetted "personal computers" where one knew from the firmware up that the machine had a VDU, a keyboard, and (possibly) a mouse.
* https://jdebp.uk/FGA/tui-console-and-terminal-paradigms.html
For a long time, so long that I had a widely used 2 decades old Frequently Given Answer about it, Windows NT had no way to capture console I/O, no way of waiting on consoles for buffer changes and to inject back-end input events. No way to do what a SSH server would need to do in order to capture and send/receive that I/O over a network.
Then along came Windows Terminal, and I finally got to change the answer in 2018.
* https://jdebp.uk/FGA/capture-console-win32.html
RDP is still the best remote desktop protocol - so much so that Gnome on Linux uses it for desktop sharing.
But, of course, it's a remote desktop protocol. Meanwhile Windows Server has been steadily moving onto command line & PowerShell for system administration for the past 12 years or so. The bespoke solution for remote admin has been remote PowerShell for a while, so ssh is arguably competing with that.
You can also run a ssh server in WSL2. You'll need to proxy connections to it or run a vpn though to have it visible from the outside. I use tailscale.