ssh - Connection closed by UNKNOWN

Petr Lautrbach plautrba at redhat.com
Thu Jul 17 00:04:04 EST 2014


Hi,

ssh clients shows "closed by UNKNOWN" message when a socket is closed by a
remote side while ssh is waiting for user's password:

$ ssh user at localhost
user at localhost's password: 
Connection closed by UNKNOWN

When the packet_read_seqnr() calls get_remote_ipaddr(), a connection's
socket is already closed and there's not been any other call of this function
yet so canonical_host_ip from canohost.c is still NULL and the function
returns "UNKNOWN". I think that it could be workarounded by calling get_remote_ipaddr() right
after packet_set_connection(), e.g. using another debug message, see bellow, or
there could be set_remote_ipaddr() in canonhost.c for that.

--- a/sshconnect.c
+++ b/sshconnect.c
@@ -62,6 +62,7 @@
 #include "monitor_fdpass.h"
 #include "ssh2.h"
 #include "version.h"
+#include "canohost.h"
 
 char *client_version_string = NULL;
 char *server_version_string = NULL;
@@ -171,6 +172,8 @@ ssh_proxy_fdpass_connect(const char *host, u_short port,
 
        /* Set the connection file descriptors. */
        packet_set_connection(sock, sock);
+       debug("Connected to %.200s [%.100s] port %d.",
+           host, get_remote_ipaddr(), get_remote_port());
 
        return 0;
 }
@@ -493,6 +496,8 @@ ssh_connect_direct(const char *host, struct addrinfo *aitop
 
        /* Set the connection. */
        packet_set_connection(sock, sock);
+       debug("Connected to %.200s [%.100s] port %d.",
+           host, get_remote_ipaddr(), get_remote_port());
 
        return 0;
 }



More information about the openssh-unix-dev mailing list