How to Fix “Connection reset by peer” SSH Error

The “connection reset by peer” problem is an issue that could interrupt your SSH sessions. This error often signals the unexpected termination of the connection which is frequently caused by network issues server-side problems or client-side configurations.

In this article, we will cover different solutions to fix SSH connection reset by peer problems enabling you to restore your SSH connectivity and productivity.

Understanding the Error

It is important to understand what kex_exchange_identification: read: connection reset by peer error means. The SSH client is attempting to establish a connection with the server but the server unexpectedly closes the connection before the handshake is complete. This can be caused by various factors including:

  1. Network issues such as packet loss a lot of traffic or firewall restrictions can disrupt the connection.
  2. Server-side problems like resource exhaustion SSH service issues or configuration errors on the server can trigger the error.  
  3. Client-side issues for example incorrect SSH configuration software conflicts or network settings on your local machine can also be the problem.

Troubleshooting Steps

Following are the troubleshooting steps to resolving ssh_exchange_identification: read: connection reset by peer error:

Network Connectivity

You can use the ping command in Linux to verify network reachability, if the ping is successful proceed to the next step.

ping server_address

Make sure there are no network outages router problems or firewall blocks preventing the connection. If possible, connect to the server from a different network to isolate the issue.

SSH Server Status

Use the following command or equivalent command for your system to verify the SSH service is running:

sudo systemctl status ssh
ssh status

If the service is not running start it with the following command:

sudo systemctl start ssh

Examine the SSH server logs which are usually located in /var/log/secure for any error messages:

tail -f /var/log/secure

Look for lines related to SSH connections and failed attempts.

SSH Client Configuration

Examine the SSH client logs located ~/.ssh for any error messages. To check SSH client configuration use nano with the following directory:

nano ~/.ssh/config

Another option is to test with a different SSH client to find out client specific issues.

Firewall / Security Settings

You can check the firewall settings for SSH port 22, which is open on both the client and server firewalls. If you have install UFW on Ubuntu, enable it with the following command:

sudo ufw allow 22/tcp

Another option to allow SSH, use the following command:

sudo ufw allow ssh

Temporarily disable any intrusion prevention software that might be blocking SSH connections or security software might interfere with SSH connections. Try disabling it temporarily.

SSH Server Settings

If you are experiencing excessive failed login attempts increase the MaxAuthTries value in the sshd_config file. For this navigate to the file with the following command:

nano /etc/ssh/sshd_config

Increase the maximum authentication tries in the SSH configuration file:

MaxAuthTries 6
maz auth tries

Make sure the ClientAliveInterval and ClientAliveCountMax settings are appropriate to prevent idle connections from being terminated:

ClientAliveInterval 60
ClientAliveCountMax 3
client alive and count max

Check if your IP address is blocked in hosts.deny or allowed in hosts.allow. If the server is overloaded increase MaxStartups and MaxSessions in sshd_config:

MaxStartups 10:30:100
MaxSessions 100
max startups

Restart the SSH service after making changes. You can use the following command:

sudo systemctl restart sshd

Advanced Technique

If the above steps are not working then check SSH encryption modes and make sure that the SSH client and server support compatible encryption modes. Use the following option with the SSH client to enable verbose output for debugging:

ssh -v user@server

Lastly, a server reboot can sometimes resolve temporary issues.

Important Notes

Following are some important notes on how to fix a connection reset by peer SSH error:

  • Using SSH keys instead of passwords can improve security and reduce connection issues.
  • Update the SSH client and server with the latest patches.
  • Monitor your system resources and check for CPU, memory, or disk usage issues on the server.
  • Try logging in with a different user account to find the cause of the problem.

Conclusion

By working through the above steps and carefully considering the potential causes you should be able to effectively troubleshoot and resolve the “connection reset by peer” SSH error. It is important to note that the solutions to your specific environment and error messages are based on security settings on the client and server side.

Encountering a “connection reset by peer” SSH error on your server can be a roadblock to remote access. Consider an Ultahost cheap Linux VPS empowers you to diagnose and fix the issue effectively which grants you root access and full control over your server configuration. This allows you to verify if SSH is running, adjust firewall settings, or even reinstall SSH if necessary.

FAQ

What does ‘Connection reset by peer’ mean in SSH?
Why do I get a ‘Connection reset by peer’ error in SSH?
How can I fix the ‘Connection reset by peer’ SSH error?
Does restarting the SSH server help fix the ‘Connection reset by peer’ error?
Can a firewall cause the ‘Connection reset by peer’ error in SSH?

Related Post

How To Create Teamspeak Server On Windows Ser

TeamSpeak is a highly robust voice communication softwa...

Understanding the Function, Types & Roles

What is a DNS Server? The Domain Name System (DNS) h...

How to Setup and Configure DNS in Windows Ser

Microsoft created Windows Server, a strong operating sy...

How To Connect To Linux Server Remotely

Until a few years ago, accessing devices such as a Linu...

How to Install Apache Tomcat on Windows

Apache Tomcat a widely used web server and Java contain...

Install LAMP on Ubuntu 18.04

The LAMP acronym, which stands for Linux, Apache, MySQL...

Leave a Comment