Question: When I try to connect to a remote SSH
server, it takes very long time (30 seconds to 2 minutes) before
password prompt appears. Why is SSH login so slow to start, and how can I
get rid of long delay in SSH login?
If you have to wait very long for SSH password prompt, there could be several things that may go wrong. To troubleshoot the root cause of slow SSH login, you can run ssh command with "-vvv" option, which will show you what's happening behind the scene during SSH login.
Here are possible solutions to the delayed SSH login problem.
To disable GSSAPI authentication on an SSH server, look for "GSSAPIAuthentication" in /etc/ssh/sshd_config, and edit it or add the line as follows.
To disable reverse DNS lookups on an SSH server, edit SSH server configuration as follows.
If you have to wait very long for SSH password prompt, there could be several things that may go wrong. To troubleshoot the root cause of slow SSH login, you can run ssh command with "-vvv" option, which will show you what's happening behind the scene during SSH login.
$ ssh -vvv user@<ssh-server>
$ ssh -vvv root@127.0.0.1
Here are possible solutions to the delayed SSH login problem.
Disable GSSAPI Authentication
One possible culprit (as indicated in the SSH client log above) is GSSAPI authentication. During SSH login, SSH client goes through a series of authentication steps, and one of them is GSSAPI authentication, where an SSH server contacts a GSSAPI server to validate client authentication. On Linux distros such as CentOS, GSSAPI authentication is enabled by default, and GSS failure can add long delay in SSH session start.To disable GSSAPI authentication on an SSH server, look for "GSSAPIAuthentication" in /etc/ssh/sshd_config, and edit it or add the line as follows.
$ sudo vi /etc/ssh/sshd_config
GSSAPIAuthentication noThen restart SSH server:
$ sudo /etc/init.d/ssh restart (Debian, Ubuntu or Linux Mint)
$ sudo systemctl restart sshd (Fedora)
$ sudo service sshd restart (CentOS or RHEL)
$ sudo systemctl restart sshd (Fedora)
$ sudo service sshd restart (CentOS or RHEL)
Disable Reverse DNS Lookup
Another possibility for slow SSH login is reverse DNS lookup. On Linux distros such as Ubuntu, when an SSH server receives a login request from a client, the server performs reverse DNS lookup of the client's IP address for security reason. If the reverse DNS lookup fails, lookup timeout will add to SSH login delay.To disable reverse DNS lookups on an SSH server, edit SSH server configuration as follows.
$ sudo vi /etc/ssh/sshd_config
# add this line UseDNS noThen restart SSH server:
$ sudo /etc/init.d/ssh restart (Debian, Ubuntu or Linux Mint)
$ sudo systemctl restart sshd (Fedora)
$ sudo service sshd restart (CentOS or RHEL)
$ sudo systemctl restart sshd (Fedora)
$ sudo service sshd restart (CentOS or RHEL)