Xpra: Ticket #2097: SSHFP with paramiko

One feature that I've been using with openssh, but is missing from the new paramiko code, is checking SSHFP DNS records.

Some background: SSHFP records are used to publish a host key fingerprints in DNS, then (assuming the domain is DNSSEC-secured and the client has a validating resolver) the client can verify the host keys through DNS rather than the classic trust-on-first-use method. In openssh, this is enabled by the VerifyHostKeyDNS yes option in ssh_config. Since I have many hosts which connect to each other, I think this scales better than the classic known_hosts approach.

Now, paramiko does not support SSHFP natively, but it can be implemented by the caller through a custom missing host key policy. I'm attaching code for this policy I use in another codebase, though I am not sure whether it belongs in xpra or should be added to paramiko itself, or implemented in some other manner. Thoughts?

Thu, 03 Jan 2019 13:35:02 GMT - elenril: attachment set

Thu, 03 Jan 2019 17:27:42 GMT - Antoine Martin: status changed

I think the policy itself could be merged by paramiko, if they decide to do so. If anything, their review of the code would be useful to have.

The actual code changes in xpra would be minimal. I'll try to take a look when I get a chance, but feel free to beat me to it.

Fri, 04 Jan 2019 17:43:33 GMT - Antoine Martin: owner, status changed

Try r21287 and let me know how it goes.

I take back what I had said regarding merging this upstream: it's easier to have it separate so that the messages we get from the SSHFP DNS check can be integrated into the other dialogs / console messages.

Fri, 18 Jan 2019 17:54:50 GMT - Antoine Martin: status changed; resolution set

Not heard back, closing - works for me.

Wed, 24 Apr 2019 04:35:15 GMT - Antoine Martin:

Added python-dns to rpm and deb dependencies in r22531.

Mon, 27 Jan 2020 17:14:22 GMT - Antoine Martin:

See also #2567.

Sat, 23 Jan 2021 05:42:08 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2097