I'm not sure what you are asking exactly. OpenSSH for Windows (server and client) are separate components which can be installed and used as application/service. While we do have the possibility to incorporate external applications (for the client) similar to PuTTY, it's not the same as implementing a component with "managed" development APIs, such as Rebex, for example. As far as I know, there are currently no managed API bindings which would make it hard to use in an application such as Royal TS. I'm wondering what you would expect from such an integration or what is missing the current components we're using. Can you elaborate?
One thing that would be lovely is support/integration with the ssh-agent for private keys
I assume that using the OpenSSH client directly is not as straight-forward as it appears, because Rebex.NET is both an SSH client and a terminal emulator, whereas OpenSSH is just the former?
(The same is true for PuTTY, with the added pain of re-parenting a foreign processes' window thrown in.)
I.e. you'd still need something to actually host the OpenSSH process within RoyalTS?
I'm not sure if the modern, soon-to-be-default Windows Terminal provides any help here. It does have plenty of APIs and (as far as I can say) good documentation.
I'm not sure if it would be worth the effort.
I certainly would like to get rid of the problems the re-parenting of PuTTY brings.
Rebex would do that, but it is far less feature-complete than PuTTY.
Small addendum: the OpenSSH version distributed with Windows 10 is somewhat out of date already and can always be replaced by what is available at https://github.com/PowerShell/Win32-OpenSSH.
We do regularly check the Microsoft Terminal source. Right now, it's not that easy to integrate it in other applications. The integration samples are basically code snippets taken from Visual Studio (WPF) integration which has poor performance and is far from what the Rebex based terminal can do. They do have plans to make an embeddable component at some point but there's no timeline for that. Once they have something which would work, we will try to make a plugin based on that component.
Rebex appears to have support for the OpenSSH protocol. I have my keys stored in 1Password, which has an SSH agent that listens to the OpenSSH pipe (\\.\pipe\openssh-ssh-agent), and makes the key available after authentication.
I'd like to be able to have 1Password provide the key to the Rebex terminal.
to my knowledge, the Rebex implementation is not based on OpenSSH implementation. However, since it's abiding the SSH standards and RFC it is (should be) compatible connecting to servers based on OpenSSH. Also note, that the SSH protocol and the SSH Agent protocol are two different things. Rebex does not seem to have support for that (yet). To learn more (and vote), you can check out this post in their forums:
Hi! Microsoft is currently incorporating OpenSSH into Windows. Link: https://arstechnica.com/gadgets/2017/12/microsoft-quietly-snuck-an-ssh-client-and-server-into-the-latest-windows-10/
Let's start using it.
1 person likes this idea