How to Fix the SSH Connection Refused Error

SSH, short for Secure Shell, is a cryptographic network protocol used to establish secure connections over an unsecured network. It provides a secure channel between two devices, typically connecting a client to a server, allowing for remote access and control.

If you have ever encountered the “SSH Connection Refused” error while trying to connect to a Linux remote server, you know how frustrating it can be. Secure Shell (SSH) is a crucial tool for accessing and managing remote servers securely. When you encounter this error, it means the SSH service on the server is not accessible, preventing you from establishing a connection. In this article, we will explore the common causes of this error and provide practical steps to fix SSH connection.

Common Causes of SSH Connection Refused Error

Some of the most common causes of SSH connection refusal errors are listed below:

  1. Incorrect Credentials: Ensure that you’re using the correct username and password to authenticate with the SSH server. Sometimes, typos or incorrect credentials can lead to this error.
  2. SSH Service Not Running: The SSH service might not be running on the server, leading to the refusal of incoming connections.
  3. Incorrect Port Configuration: The SSH service may be configured to listen on a port other than the default port 22.Firewall Restrictions: Firewall settings on either the server or client side may be blocking SSH connections.
  4. IP Address Whitelisting: The server may be configured to only allow SSH connections from specific IP addresses.
  5. Incorrect SSH Configuration: Misconfigurations in the SSH server configuration file (sshd_config) can lead to connection issues.

Resolving SSH Connection Refused Error

You can follow the below steps to troubleshoot SSH connection refused error.

Step 1: Incorrect Credentials

Sometimes, users may forget their username, especially if they have multiple accounts or if it’s been a while since they last logged in. In such cases, if the server allows it, you can try to retrieve the username by contacting the system administrator or checking any documentation or emails that may contain account information.

In case you forget the password then you can reset it which might involve answering security questions or receiving a password reset link via email. If you are unable to reset your password on your own, contacting the system administrator or IT support team can help. They may be able to reset your password for you or provide further assistance.

Step 2: Verify SSH Service Status

To start troubleshooting the SSH error connection refused, the first step is to confirm whether the SSH service is running on both the client and server sides. This can be done by checking the service status using the appropriate command.

On the server side, execute the below command to check the status of the SSH service.

sudo systemctl status ssh

This command provides information about whether the service is active, inactive, or encountering any errors.

Similarly, on the client side, use commands like `service ssh status` or `systemctl status sshd` to verify the status of the SSH service.

sudo systemctl status ssh

Executing either of these commands on the client side will provide information about the status of the SSH service running locally. This information helps to ensure that SSH service is running and available for making connections.

Step 3: Check SSH Port Configuration

If the SSH service is running but you’re still encountering the Connection Refused Error, it’s crucial to ensure that the SSH service is configured to listen on the correct port. Here’s how you can do it:

On the server side, you can open the SSH server configuration file using the nano or vi text editor:

nano /etc/ssh/sshd_config

By default, SSH operates on port 22. Ensure that the Port directive specifies the correct port number.

Similarly, on the client side, you can open the SSH client configuration file, usually located at /etc/ssh/ssh_config. Again, you can use a text editor like nano or vi.

nano /etc/ssh/ssh_config

Though it typically lacks a port specification, verify your connection port. After inspecting both files, ensure port consistency and save changes to resolve the issue.

Step 4: Review Firewall Settings

Firewalls, both on the server and within the network infrastructure, can sometimes block SSH connections. To ensure proper SSH connectivity, it’s essential to review and potentially adjust firewall settings.

You can use the iptables command to review the firewall settings on the server where the SSH service is running:

sudo iptables -L

Ensure that there are rules typically port 22 allowing incoming connections on the SSH port.

Similarly, if you identify that SSH traffic is being blocked by the server’s firewall, you can add a rule to allow SSH connections. For example, using iptables, you can add a rule to allow incoming SSH traffic on port 22 with the following command:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

If SSH traffic is being blocked by a network firewall, you’ll need to adjust its settings to allow SSH connections. This typically involves accessing the firewall’s configuration interface and adding a rule or policy to permit SSH traffic on port 22.

After adjusting the firewall settings, remember to save the changes to ensure they persist across reboots or configuration changes.

Step 5: Whitelist IP Addresses

If the server is configured to only allow SSH connections from specific IP addresses, it’s essential to ensure that your IP address is whitelisted.

This information can usually be found in the SSH server configuration file which can be accessed using:

nano /etc/ssh/sshd_config

Look for directives such as AllowUsers, AllowGroups, or DenyUsers that specify which users or IP addresses are allowed or denied SSH access.

Once your IP address has been whitelisted, it’s important to ensure that it’s correctly configured in the SSH server’s configuration file. For this, you can open the SSH server configuration file (sshd_config) on the server side using a text editor:

nano /etc/ssh/sshd_config

After making the necessary changes, save the file and restart the SSH service to apply the new configuration.

sudo systemctl restart sshd

Step 6: Network Connectivity Checks

Finally, verify the network connectivity between the client and server that you can do by executing the following command:

ping <server_ip_or_hostname>

The ping command can be used to check for network connectivity between the client and server. The ping command sends ICMP echo requests to the target server and waits for responses.

Replace with the IP address or hostname of the server you’re trying to connect to. Running this command will indicate whether there’s network connectivity between the client and server. A successful ping indicates that the network is reachable.

Conclusion

SSH (Secure Shell) is indispensable for secure remote server management. The “SSH Connection Refused” error can stem from various issues such as inactive SSH service, incorrect port configuration, firewall restrictions, or IP whitelisting.

By systematically troubleshooting these factors, users can effectively resolve this error and ensure seamless SSH connections for remote access and control. 

Encountering an “SSH Connection Refused” error on your server can be a roadblock to remote access. Upgrading to an Ultahost Linux VPS server 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 “SSH Connection Refused” mean?
How do I troubleshoot the “SSH Connection Refused” error?
How do I check if the SSH service is running on the server?
What should I do if the SSH service is not running?
How do I check if the SSH port is open?

Related Post

Install LAMP on Ubuntu 18.04

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

Utilizing CTRL+ALT+DEL in RDP

Ever since the introduction of the Remote Desktop Proto...

Installing Drupal on Ubuntu 16 VPS Server

Drupal is a highly capable content management system (C...

Exploring the installation process of MongoDB

MongoDB, the popular NoSQL database, offers a powerful ...

Windows Remote Desktop Connection to Linux

Remote access has become an indispensable aspect of mod...

Understanding the Function, Types & Roles

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

Leave a Comment