• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

TinyGrab

Your Trusted Source for Tech, Finance & Brand Advice

  • Personal Finance
  • Tech & Social
  • Brands
  • Terms of Use
  • Privacy Policy
  • Get In Touch
  • About Us
Home » How to set up SSH on Ubuntu?

How to set up SSH on Ubuntu?

March 21, 2025 by TinyGrab Team Leave a Comment

Table of Contents

Toggle
  • Setting Up SSH on Ubuntu: A Secure Gateway to Your System
    • A Step-by-Step Guide to SSH Setup
      • Installing the OpenSSH Server
      • Starting and Enabling the SSH Service
      • Configuring Your Firewall
      • Testing the Connection
    • Advanced SSH Configuration
      • Changing the SSH Port
      • Disabling Password Authentication
      • Disabling Root Login
    • Frequently Asked Questions (FAQs)
      • 1. What is SSH and why is it important?
      • 2. How do I find my Ubuntu server’s IP address?
      • 3. I can’t connect to my SSH server. What should I check?
      • 4. How do I securely copy files to and from my Ubuntu server?
      • 5. What are SSH keys and why should I use them?
      • 6. How do I generate SSH keys?
      • 7. How do I copy my public key to the server?
      • 8. How do I disable password authentication after setting up SSH keys?
      • 9. How do I change the default SSH port?
      • 10. What is port forwarding and why is it necessary?
      • 11. How do I disable root login via SSH?
      • 12. Can I use SSH to forward ports and create tunnels?

Setting Up SSH on Ubuntu: A Secure Gateway to Your System

So, you want to unlock the power of remote access and manage your Ubuntu machine from anywhere? You’ve come to the right place. Setting up SSH (Secure Shell) is your first step towards a world of streamlined administration and efficient workflow. Let’s get started.

In its simplest form, setting up SSH on Ubuntu boils down to these key steps:

  1. Installation: Ensure the OpenSSH server is installed using sudo apt update && sudo apt install openssh-server.
  2. Starting the Service: Start the SSH service and enable it to automatically start on boot with sudo systemctl start ssh and sudo systemctl enable ssh.
  3. Firewall Configuration: Configure your firewall (usually ufw) to allow SSH traffic on port 22 (or your custom port) using sudo ufw allow ssh (or sudo ufw allow 22/tcp if ufw doesn’t recognize the ssh profile). Don’t forget to enable ufw with sudo ufw enable.
  4. Verification: Verify that the SSH server is running and accessible by attempting to connect to it from another machine using ssh username@your_ubuntu_ip_address.

That’s the gist of it. But, like a finely aged wine, the true flavor lies in the details. Let’s delve deeper.

A Step-by-Step Guide to SSH Setup

Installing the OpenSSH Server

Ubuntu doesn’t always come with the SSH server pre-installed. The first step is to ensure it’s on your system. Open your terminal and run the following commands:

sudo apt update sudo apt install openssh-server 

The apt update command refreshes the package lists, ensuring you’re getting the latest version. apt install openssh-server then downloads and installs the OpenSSH server package.

Starting and Enabling the SSH Service

Once installed, the SSH service might not be running automatically. To start it and ensure it starts every time you boot your system, use these commands:

sudo systemctl start ssh sudo systemctl enable ssh 

systemctl start ssh fires up the SSH service for your current session. systemctl enable ssh configures the system to automatically start the service on subsequent boots. You can check the status of the service with sudo systemctl status ssh.

Configuring Your Firewall

Ubuntu typically uses ufw (Uncomplicated Firewall) as its default firewall. You need to configure it to allow SSH traffic to pass through. The default SSH port is 22, but you can use a different port (more on that later). Here’s how to open port 22:

sudo ufw allow ssh sudo ufw enable 

ufw allow ssh adds a rule to allow connections to port 22. ufw enable activates the firewall, enforcing the new rule. You can check the status of the firewall with sudo ufw status. If you’re using a custom port (say, 2222), you’d use sudo ufw allow 2222/tcp.

Important Note: If you are behind a router, you’ll also need to forward port 22 (or your custom port) to the internal IP address of your Ubuntu server on the router’s configuration page.

Testing the Connection

Now comes the moment of truth. From another machine on your network (or from outside if you’ve set up port forwarding correctly), try to connect to your Ubuntu server using SSH:

ssh username@your_ubuntu_ip_address 

Replace username with your Ubuntu username and your_ubuntu_ip_address with the IP address of your Ubuntu server. You can find the IP address on the server using the command ip addr.

If all goes well, you’ll be prompted for your password. Enter it, and you should be greeted with a command prompt on your Ubuntu server. Congratulations! You’ve successfully set up SSH.

Advanced SSH Configuration

While the steps above get you a basic SSH setup, there’s a lot more you can do to enhance security and customize your experience. Let’s explore some advanced options.

Changing the SSH Port

Using the default port 22 makes your server a more visible target for brute-force attacks. Changing it to a higher, less common port can significantly improve security.

  1. Edit the SSH configuration file: Open the file /etc/ssh/sshd_config with a text editor like nano: sudo nano /etc/ssh/sshd_config.
  2. Find the Port directive: Look for the line that says #Port 22.
  3. Uncomment and change the port: Remove the # and change the port number to something else (e.g., Port 2222). Choose a port number above 1024 and below 65535 that isn’t already in use.
  4. Save the file and restart SSH: Save the changes (Ctrl+X, then Y, then Enter in nano) and restart the SSH service: sudo systemctl restart ssh.
  5. Update your firewall rule: Remember to update your firewall rule to allow the new port: sudo ufw allow 2222/tcp (or whatever port you chose).

Now, when you connect, you’ll need to specify the new port: ssh -p 2222 username@your_ubuntu_ip_address.

Disabling Password Authentication

For enhanced security, consider disabling password authentication and using SSH keys instead. This prevents brute-force attacks that rely on guessing passwords.

  1. Generate an SSH key pair: On your client machine (the one you’re connecting from), run ssh-keygen -t rsa -b 4096. This will create a public and private key pair. You’ll be prompted for a passphrase (recommended).
  2. Copy the public key to the server: Use the ssh-copy-id command: ssh-copy-id username@your_ubuntu_ip_address. This command will copy your public key to the ~/.ssh/authorized_keys file on the server.
  3. Edit the SSH configuration file: Open /etc/ssh/sshd_config again: sudo nano /etc/ssh/sshd_config.
  4. Disable password authentication: Find the line PasswordAuthentication yes and change it to PasswordAuthentication no. You may also need to ensure PubkeyAuthentication yes is set.
  5. Save the file and restart SSH: Save the changes and restart the SSH service: sudo systemctl restart ssh.

Now, when you connect, you’ll be prompted for your passphrase (if you set one) instead of your password.

Disabling Root Login

For security reasons, it’s generally a bad idea to allow direct root login via SSH. Instead, login as a regular user and then use sudo to execute commands that require root privileges.

  1. Edit the SSH configuration file: Open /etc/ssh/sshd_config: sudo nano /etc/ssh/sshd_config.
  2. Disable root login: Find the line PermitRootLogin yes and change it to PermitRootLogin no.
  3. Save the file and restart SSH: Save the changes and restart the SSH service: sudo systemctl restart ssh.

Now, attempts to login directly as root will be denied.

Frequently Asked Questions (FAQs)

1. What is SSH and why is it important?

SSH (Secure Shell) is a cryptographic network protocol for operating network services securely over an unsecured network. It’s essential for remote administration, secure file transfer, and tunneling. Without SSH, sensitive data transmitted over the network could be intercepted and compromised.

2. How do I find my Ubuntu server’s IP address?

Use the command ip addr in the terminal. Look for the interface connected to your network (usually eth0 or wlan0) and find the inet address. This is your server’s IP address.

3. I can’t connect to my SSH server. What should I check?

First, make sure the SSH service is running (sudo systemctl status ssh). Then, verify your firewall rules (sudo ufw status). Double-check that you’re using the correct IP address and port. If you’re connecting from outside your network, ensure port forwarding is correctly configured on your router.

4. How do I securely copy files to and from my Ubuntu server?

Use SCP (Secure Copy) or SFTP (SSH File Transfer Protocol). SCP is a command-line tool, while SFTP is a graphical interface often available in file managers. Both encrypt the data during transfer. For example: scp /local/file.txt username@your_ubuntu_ip_address:/remote/directory/.

5. What are SSH keys and why should I use them?

SSH keys are a more secure alternative to passwords for authentication. They use public-key cryptography, where a private key is stored on your client machine and a public key is placed on the server. This eliminates the risk of passwords being guessed or intercepted.

6. How do I generate SSH keys?

Use the ssh-keygen command in your terminal: ssh-keygen -t rsa -b 4096.

7. How do I copy my public key to the server?

The easiest way is to use the ssh-copy-id command: ssh-copy-id username@your_ubuntu_ip_address. Alternatively, you can manually copy the contents of your ~/.ssh/id_rsa.pub file to the ~/.ssh/authorized_keys file on the server.

8. How do I disable password authentication after setting up SSH keys?

Edit the SSH configuration file (/etc/ssh/sshd_config) and set PasswordAuthentication no. Then, restart the SSH service.

9. How do I change the default SSH port?

Edit the SSH configuration file (/etc/ssh/sshd_config), uncomment the Port directive, and change it to a different port number. Remember to update your firewall rules and port forwarding settings accordingly.

10. What is port forwarding and why is it necessary?

Port forwarding is the process of redirecting network traffic from one port on your router to another port on a specific device on your local network. It’s necessary if you want to access your SSH server from outside your local network.

11. How do I disable root login via SSH?

Edit the SSH configuration file (/etc/ssh/sshd_config) and set PermitRootLogin no. Then, restart the SSH service.

12. Can I use SSH to forward ports and create tunnels?

Yes! SSH is excellent for port forwarding and tunneling. You can create secure tunnels to access services running on your server that might not be directly exposed to the internet. This is a powerful technique for enhancing security and accessing internal resources remotely.

By mastering these SSH techniques, you’ll be well-equipped to securely manage your Ubuntu server from anywhere in the world. Remember to prioritize security and follow best practices to protect your system from unauthorized access. Happy SSH-ing!

Filed Under: Tech & Social

Previous Post: « How to reset a Samsung Galaxy Watch 4 without a phone?
Next Post: How to repost on Facebook? »

Reader Interactions

Leave a Reply Cancel reply

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

Primary Sidebar

NICE TO MEET YOU!

Welcome to TinyGrab! We are your trusted source of information, providing frequently asked questions (FAQs), guides, and helpful tips about technology, finance, and popular US brands. Learn more.

Copyright © 2025 · Tiny Grab