Update page 'FAQs'

Russtopia 2019-05-03 17:46:45 -07:00
parent 745c491cf7
commit 9ab08f4fd3
1 changed files with 27 additions and 0 deletions

27
FAQs.md Normal file

@ -0,0 +1,27 @@
This page captures commonly-asked questions and their answers. Anticipated questions which haven't actually been asked should also be addressed here, within reason.
### What is this?
This is a remote access client and server solution with encrypted communication, allowing standard UNIX-style shells and secure file copies. If ```ssh``` didn't exist, or were created in a parallel universe, this is what admins might use instead.
### Why write this when ```ssh``` already exists?
Because sometimes the best way to learn about something is to recreate it. A sculptor doesn't become proficient by just looking at others' works, they need to do some sculpting themselves :)
That and, to be honest, I found the existing openssh codebase to be pretty heavy; and after many evenings of dead ends trying to properly add support for new algorithms (I could get the negotiation tables working, but could not figure out how the heck one communicates the session keys to each newly-opened channel... fork() hell), I realized that Go (golang), with its extremely clean concurrency model and strong standard library might allow a much cleaner implementation of what I wanted.
Yes, yes, I know openssh is what it is because it has been battle-hardened over about two decades, and a lot of the complexity there is there for a reason. However, a lot of it is *also* there because C is much lower-level, especially in its string- and buffer-handling, a minefield of security 'oopsies'. (I still love you, C!)
### Has ```hkexsh`` been audited for security?
Nope. Have at it, please. Feedback is welcomed, and the more secure it can be made, while keeping idiomatic Go and its inherent safety benefits intact, the better.
### You should have written it in Rust!
Go away. Just kidding. Well, half-kidding. I plan to learn Rust someday, but not today. Feel free to port ```hkexsh`` to Rust if you're a wiz, and I'd be interested to compare the implementations, really!
### Why won't the server ```hkexshd``` build in Windows?
WIndows has a completely different console and file handle model from UNIX/POSIX OSes. I jumped through some hoops to get the client ```hkexsh``` building and running under MSYS2, but the server side needs a lot more platform-dependent voodoo. I don't have the expertise nor desire to go off into the weeds on this; contributors are welcome.