[PATCH] ssh-keyscan also emits the port used for key retrieval, if non-default
Damien Miller
djm at mindrot.org
Fri Apr 10 10:09:01 AEST 2015
On Thu, 9 Apr 2015, Michael Handler wrote:
> If you invoke ssh-keyscan with a non-default port via -p, it won't log
> that port data in the hostname portion of the key data it prints out.
Thanks, I committed a slightly different patch using the existing
put_host_port() function:
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
index c5fb3b5..7955d72 100644
--- a/ssh-keyscan.c
+++ b/ssh-keyscan.c
@@ -299,15 +299,18 @@ static void
keyprint(con *c, struct sshkey *key)
{
char *host = c->c_output_name ? c->c_output_name : c->c_name;
+ char *hostport = NULL;
if (!key)
return;
if (hash_hosts && (host = host_hash(host, NULL, 0)) == NULL)
fatal("host_hash failed");
- fprintf(stdout, "%s ", host);
+ hostport = put_host_port(host, ssh_port);
+ fprintf(stdout, "%s ", hostport);
sshkey_write(key, stdout);
fputs("\n", stdout);
+ free(hostport);
}
static int
@@ -488,7 +491,7 @@ congreet(int s)
confree(s);
return;
}
- fprintf(stderr, "# %s %s\n", c->c_name, chop(buf));
+ fprintf(stderr, "# %s:%d %s\n", c->c_name, ssh_port, chop(buf));
n = snprintf(buf, sizeof buf, "SSH-%d.%d-OpenSSH-keyscan\r\n",
c->c_keytype == KT_RSA1? PROTOCOL_MAJOR_1 : PROTOCOL_MAJOR_2,
c->c_keytype == KT_RSA1? PROTOCOL_MINOR_1 : PROTOCOL_MINOR_2);
More information about the openssh-unix-dev
mailing list