1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-18 11:31:00 -05:00

Mention the host name in host-key prompts.

Now that it's possible for a single invocation of PuTTY to connect to
multiple SSH servers (jump host followed by ultimate destination
host), it's rather unhelpful for host key prompts to just say "the
server". To check an unknown host key, users will need to know _which_
host it's purporting to be the key for.

Another possibility is to put a message in the terminal window
indicating which server we're currently in the SSH setup phase for.
That will certainly be what we have to end up doing for userpass
prompts that appear _in_ the terminal window. But that by itself is
still unhelpful for host key prompts in a separate dialog, because the
user would have to check both windows to get all the information they
need. Easier if the host key dialog itself tells you everything you
need to know to answer the question: is _this_ key the one you expect
for _that_ host?
This commit is contained in:
Simon Tatham
2021-09-15 14:41:00 +01:00
parent f317f8e67e
commit d1dc1e927c
8 changed files with 89 additions and 61 deletions

View File

@ -9,13 +9,16 @@
#include "misc.h"
#include "console.h"
char *hk_absentmsg_common(const char *keytype, const char *fingerprint)
char *hk_absentmsg_common(const char *host, int port,
const char *keytype, const char *fingerprint)
{
return dupprintf(
"The server's host key is not cached. You have no guarantee\n"
"that the server is the computer you think it is.\n"
"The host key is not cached for this server:\n"
" %s (port %d)\n"
"You have no guarantee that the server is the computer\n"
"you think it is.\n"
"The server's %s key fingerprint is:\n"
"%s\n", keytype, fingerprint);
" %s\n", host, port, keytype, fingerprint);
}
const char hk_absentmsg_interactive_intro[] =
@ -29,16 +32,19 @@ const char hk_absentmsg_interactive_prompt[] =
"Store key in cache? (y/n, Return cancels connection, "
"i for more info) ";
char *hk_wrongmsg_common(const char *keytype, const char *fingerprint)
char *hk_wrongmsg_common(const char *host, int port,
const char *keytype, const char *fingerprint)
{
return dupprintf(
"WARNING - POTENTIAL SECURITY BREACH!\n"
"The server's host key does not match the one PuTTY has\n"
"cached. This means that either the server administrator\n"
"has changed the host key, or you have actually connected\n"
"The host key does not match the one PuTTY has cached\n"
"for this server:\n"
" %s (port %d)\n"
"This means that either the server administrator has\n"
"changed the host key, or you have actually connected\n"
"to another computer pretending to be the server.\n"
"The new %s key fingerprint is:\n"
"%s\n", keytype, fingerprint);
" %s\n", host, port, keytype, fingerprint);
}
const char hk_wrongmsg_interactive_intro[] =