add ssh server to ubuntu

admin3 April 2024Last Update :

Unlocking Remote Access: A Comprehensive Guide to Adding an SSH Server to Ubuntu

add ssh server to ubuntu

The ability to control a computer from afar is not just the stuff of science fiction. Secure Shell (SSH) is a network protocol that allows for secure remote login from one computer to another, providing an encrypted channel over an unsecured network. For system administrators and developers alike, SSH is an indispensable tool for managing servers, automating tasks, and troubleshooting issues. In this article, we will delve into the process of setting up an SSH server on an Ubuntu system, ensuring you can securely access your machine from anywhere in the world.

Understanding SSH and Its Importance

Before we embark on the technical journey of installing an SSH server, it’s crucial to understand what SSH is and why it’s so important. SSH stands for Secure Shell, which is a cryptographic network protocol used to operate network services securely over an unsecured network. The most common use of SSH is for accessing shell accounts on Unix-like operating systems, but it can also be used for a wide range of other network services. With SSH, all communication between the client and server is encrypted, providing confidentiality and integrity of data over an insecure network such as the internet.

Prerequisites for Installing an SSH Server on Ubuntu

Before proceeding with the installation, ensure that you have:

  • A machine running Ubuntu.
  • Sudo privileges or access to the root user account.
  • An active internet connection to download necessary packages.

Step-by-Step Installation of OpenSSH Server

OpenSSH is the most widely used SSH server on Linux systems, including Ubuntu. Here’s how to install it:

Updating System Repositories

First, update your package list to ensure you get the latest version of the software:

sudo apt update

Installing OpenSSH Server Package

Next, install the OpenSSH server package by running:

sudo apt install openssh-server

Verifying SSH Service Status

After installation, the SSH service should start automatically. Verify this with:

sudo systemctl status ssh

Configuring the Firewall

If you have UFW (Uncomplicated Firewall) enabled, allow SSH connections with:

sudo ufw allow ssh

This command configures UFW to allow incoming SSH connections on port 22, which is the default SSH port.

Securing Your SSH Server

With the SSH server installed, security is the next priority. Let’s enhance the security of your SSH server.

Changing the Default SSH Port

Changing the default SSH port (22) can help reduce the number of automated attacks against your server. Edit the SSH configuration file using your preferred text editor:

sudo nano /etc/ssh/sshd_config

Find the line that says #Port 22, remove the # to uncomment it, and change 22 to your desired port number.

Disabling Root Login

Allowing the root user to log in via SSH can be a significant security risk. To disable root login, find the line in the same configuration file that says #PermitRootLogin yes, uncomment it, and change it to no.

Using Public Key Authentication

Public key authentication is more secure than password authentication. Generate a new key pair with:


Then, copy your public key to the server with:

ssh-copy-id username@server_ip

Make sure to replace “username” with your actual username and “server_ip” with the server’s IP address.

Restarting SSH Service

After making changes to the configuration file, restart the SSH service to apply them:

sudo systemctl restart ssh

Connecting to Your SSH Server

To connect to your SSH server from a client machine, use the following command:

ssh username@server_ip -p port_number

Replace “username” with your user name on the server, “server_ip” with the server’s IP address, and “port_number” with the SSH port you configured.

Troubleshooting Common SSH Issues

Sometimes, you might encounter issues when trying to connect via SSH. Here are some common problems and their solutions:

  • Connection Timed Out: Check your firewall settings and ensure that the SSH port is open.
  • Permission Denied: Ensure your username and password are correct, or if using key-based authentication, that your keys are set up properly.
  • Could Not Resolve Hostname: Verify that the server IP address is correct and that there is no DNS issue.

Advanced Configuration and Usage

For advanced users, SSH offers a plethora of options and configurations, such as setting up an SSH tunnel for secure browsing, mounting remote directories with SSHFS, and automating tasks with SSH keys without passwords.

Frequently Asked Questions

How do I change my SSH server’s listening port?

Edit the /etc/ssh/sshd_config file and change the Port directive to your desired port number. Don’t forget to restart the SSH service afterward.

Can I use SSH keys instead of passwords?

Yes, SSH keys are recommended over passwords for enhanced security. You can generate an SSH key pair and transfer the public key to your server for key-based authentication.

What should I do if I’m locked out of my server after changing the SSH configuration?

If you have physical access to the server or another form of access like a console through a web interface provided by your hosting provider, you can revert the changes directly on the server. Always test configuration changes before logging out of an active session.


Adding an SSH server to your Ubuntu system is a straightforward process that unlocks powerful capabilities for remote management and secure file transfers. By following the steps outlined in this guide, you can set up, secure, and connect to an SSH server, enhancing your administrative toolkit. Remember to prioritize security by using key-based authentication, disabling root login, and changing the default port. With these measures in place, you’ll enjoy the convenience of remote access while keeping your system safe from unauthorized intrusions.


For further reading and advanced topics on SSH and its applications, consider exploring the following resources:

  • The official OpenSSH project page: [](
  • Ubuntu documentation on SSH/OpenSSH/Configuring: [](
  • DigitalOcean’s tutorial on setting up SSH keys: [](
Leave a Comment

Your email address will not be published. Required fields are marked *

Comments Rules :

Breaking News