diff options
Diffstat (limited to 'src/share/m')
-rw-r--r-- | src/share/m/ssh_proxycommand | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/share/m/ssh_proxycommand b/src/share/m/ssh_proxycommand index 5f7a63b..5fb2ce4 100644 --- a/src/share/m/ssh_proxycommand +++ b/src/share/m/ssh_proxycommand @@ -237,7 +237,17 @@ else if (type ssh-keygen &>/dev/null) ; then hostKey=$(ssh-keygen -F "$HOST" -f "$KNOWN_HOSTS" 2>/dev/null) else - # FIXME: we're not dealing with digested known_hosts if we don't + # FIXME: we're not dealing with digested known_hosts if we + # don't have ssh-keygen + + # But we could do this without needing ssh-keygen. hashed + # known_hosts looks like: |1|X|Y where 1 means SHA1 (nothing + # else is defined in openssh sources), X is the salt (same + # length as the digest output), base64-encoded, and Y is the + # digested hostname (also base64-encoded). + + # see hostfile.{c,h} in openssh sources. + hostKey=$(cut -f1 -d\ < .ssh/known_hosts | tr ',' '\n' | grep -Fx -e "$HOST" || :) fi fi |