Support alternative authentication methods
Right now, the way authentication works is that running distant server listen will generate a key that is used for XChaChaPoly1305 that is the same for all connections. This means that if the key was abcd (that isn't actually a valid 32-byte key), then each connection would need to use that key for encryption and authentication.
This follows the mosh model where spawning a mosh server prints out a key that the mosh client uses. The downside is that this relies on us spawning a new server per launch and doesn't support the service model described in #105. To support a service model like sshd, we need to have other authentication options. We can still use AuthClient and AuthServer to provide the challenges, but the actual authentication would use something like:
pam-clientfor unix systemsldap3viabindfor LDAP v3sspito support some different authentication models (maybe this supports windows? I really don't know what this is)windows::Security::Authentication::Identityfromwindows- something with yubikey (maybe
yubikey.rs?... not sure what I'd need on the server side) webauthmay be a better choice for server authentication standard