SSH: The Secure Shell (The Definitive Guide)
Barrett, Silverman, & Byrnes / O’Reilly

SSH Frequently Asked Questions

My SSH client connects, but the server seems to immediately close the connection. I get "connection closed" or "connection lost," or with OpenSSH:

ssh_exchange_identification: Connection closed by remote host

This message means that the client got a TCP connection to the server, but the server immediately closed it before the SSH protocol could get started (the ssh_exchange_identification routine implements the version string exchange, the initial step of the protocol).

This usually happens because of a libwrap setting which prohibits the connection. Check the server log; if this is the problem, you will see messages like these:

If you compiled the SSH server with libwrap (TCP-wrappers) support, check that the rules in the files /etc/hosts.{allow,deny} on the server host allow connection to the SSH daemon. An entry like this, for example, will allow connections to sshd from any source address:

sshd sshd1 sshd2 : ALL : ALLOW

The name on the left must be the argv[0] value of the running daemon, so if you've invoked sshd under another name, you'll need to use that. Also, the rules are order-dependent, so the rule just given might not work, depending on the other rules and their relative placement. See the hosts_access(5) man page for details on the libwrap rule syntax and semantics.