ssh: print the whole ssh-rsa hostkey in base64 when thumb check fails
in addition to the thumbprint, also print the whole hostkey in base64 (same format as openssh uses) to make verification easier.
This commit is contained in:
parent
346f5828e0
commit
42f449b9ce
1 changed files with 5 additions and 3 deletions
|
@ -492,7 +492,6 @@ void
|
||||||
kex(int gotkexinit)
|
kex(int gotkexinit)
|
||||||
{
|
{
|
||||||
static char kexalgs[] = "curve25519-sha256,curve25519-sha256@libssh.org";
|
static char kexalgs[] = "curve25519-sha256,curve25519-sha256@libssh.org";
|
||||||
static char hostkeyalgs[] = "ssh-rsa";
|
|
||||||
static char cipheralgs[] = "chacha20-poly1305@openssh.com";
|
static char cipheralgs[] = "chacha20-poly1305@openssh.com";
|
||||||
static char zipalgs[] = "none";
|
static char zipalgs[] = "none";
|
||||||
static char macalgs[] = "";
|
static char macalgs[] = "";
|
||||||
|
@ -512,7 +511,7 @@ kex(int gotkexinit)
|
||||||
sendpkt("b[ssssssssssbu", MSG_KEXINIT,
|
sendpkt("b[ssssssssssbu", MSG_KEXINIT,
|
||||||
cookie, sizeof(cookie),
|
cookie, sizeof(cookie),
|
||||||
kexalgs, sizeof(kexalgs)-1,
|
kexalgs, sizeof(kexalgs)-1,
|
||||||
hostkeyalgs, sizeof(hostkeyalgs)-1,
|
sshrsa, sizeof(sshrsa)-1,
|
||||||
cipheralgs, sizeof(cipheralgs)-1,
|
cipheralgs, sizeof(cipheralgs)-1,
|
||||||
cipheralgs, sizeof(cipheralgs)-1,
|
cipheralgs, sizeof(cipheralgs)-1,
|
||||||
macalgs, sizeof(macalgs)-1,
|
macalgs, sizeof(macalgs)-1,
|
||||||
|
@ -592,7 +591,9 @@ Next1: switch(recvpkt()){
|
||||||
ok = initThumbprints(thumbfile, nil, "ssh");
|
ok = initThumbprints(thumbfile, nil, "ssh");
|
||||||
if(ok == nil || !okThumbprint(h, sizeof(h), ok)){
|
if(ok == nil || !okThumbprint(h, sizeof(h), ok)){
|
||||||
if(ok != nil) werrstr("unknown host");
|
if(ok != nil) werrstr("unknown host");
|
||||||
fprint(2, "%s: %r, to add after verification:\n", argv0);
|
fprint(2, "%s: %r\n", argv0);
|
||||||
|
fprint(2, "verify hostkey: %s %.*[\n", sshrsa, nks, ks);
|
||||||
|
fprint(2, "add thumbprint after verification:\n");
|
||||||
fprint(2, "\techo 'ssh sha256=%s server=%s' >> %q\n", thumb, host, thumbfile);
|
fprint(2, "\techo 'ssh sha256=%s server=%s' >> %q\n", thumb, host, thumbfile);
|
||||||
sysfatal("checking hostkey failed: %r");
|
sysfatal("checking hostkey failed: %r");
|
||||||
}
|
}
|
||||||
|
@ -1092,6 +1093,7 @@ main(int argc, char *argv[])
|
||||||
quotefmtinstall();
|
quotefmtinstall();
|
||||||
fmtinstall('B', mpfmt);
|
fmtinstall('B', mpfmt);
|
||||||
fmtinstall('H', encodefmt);
|
fmtinstall('H', encodefmt);
|
||||||
|
fmtinstall('[', encodefmt);
|
||||||
|
|
||||||
s = getenv("TERM");
|
s = getenv("TERM");
|
||||||
raw = s != nil && strcmp(s, "dumb") != 0;
|
raw = s != nil && strcmp(s, "dumb") != 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue