- For quick resolution, though not a permanent fix in the DNS environment, add IP hostname entries in /etc/hosts file. If you use this method, make sure the following entries are in /etc/nsswitch.conf file:
hosts: files dns
- The second method is to add/update the below directive in the /etc/ssh/sshd_config file:
UseDNS no
The default for the UseDNS directive is yes. UseDNS specifies whether sshd should look up the remote hostname and make sure that the resolved hostname for the remote IP address maps back to the same IP address.
- If you do not want to change UseDNS directive to no and keep the directive option to yes, consider running the below command on the server.
tcpdump -n -i any port 53 -w /tmp/ssh-whyslow.pcap
The above command will cause simultaneous query requests reaching all name servers. If the primary DNS server is slow and secondary/tertiary are responding quickly then consider exchanging secondary with primary DNS server. Always check ssh-whyslow.pcap file to find out which DNS server is slow.
Change nameserver orders in /etc/resolv.conf file and again ssh from the client and hopefully, a slow connection error will be resolved.