How to Enable SSH on Debian 9 or 10?

SSH (Secure Shell) is a network protocol that enables secure communication between two systems. It establishes an encrypted connection to a remote server over unsecured networks like the internet, making it ideal for remote administration and file transfers. Unlike protocols such as Telnet or FTP, SSH encrypts all data transmission, preventing third-party interception.

Importance of Enabling SSH on Debian 9 or 10

Enabling SSH on your Debian system provides crucial remote administration capabilities. System administrators can manage multiple servers from different locations without physical presence at each machine. This remote access minimizes infrastructure-related downtime by allowing quick issue resolution without on-site visits.

Prerequisites

Before enabling SSH on Debian 9 or 10, ensure you have:

  • Access to Debian 9 or 10 server A running system with one of these operating systems

  • Root access or sudo privileges Administrative permissions to install packages and modify system configurations

  • Basic Linux command knowledge Familiarity with terminal operations and text editors

Enabling SSH on Debian 9 or 10

Follow these steps to install and configure OpenSSH server on your Debian system:

Step 1: Update System and Install OpenSSH Server

First, update the package list and install the OpenSSH server package:

sudo apt update
sudo apt install openssh-server

Step 2: Configure OpenSSH Server Settings

Edit the main SSH configuration file located at /etc/ssh/sshd_config using your preferred text editor:

sudo nano /etc/ssh/sshd_config

Key configurations to consider:

  • Disable root login Add PermitRootLogin no for enhanced security

  • Change default port Modify Port 22 to a custom port number

  • Limit authentication attempts Set MaxAuthTries 3

Step 3: Start and Enable SSH Service

Start the SSH service and enable it to start automatically at boot:

sudo systemctl start ssh
sudo systemctl enable ssh

Verify the service status:

sudo systemctl status ssh

Step 4: Test SSH Connection

Test your SSH connection from a local machine or another system:

ssh username@your-server-ip

Replace username with your actual username and your-server-ip with the server's IP address.

Advanced Configuration Options

Changing Default Port

Enhance security by changing the default SSH port from 22 to a custom high-numbered port (above 1024):

# Edit /etc/ssh/sshd_config
Port 2222

Restart the SSH service after changes:

sudo systemctl restart ssh

Restricting User Access by IP Address

Limit SSH access to specific users from particular IP addresses:

AllowUsers john@192.168.1.100
AllowUsers admin@10.0.0.0/8

Disabling Root Login

Prevent direct root login to reduce brute-force attack risks:

PermitRootLogin no

Troubleshooting Common Issues

Error Cause Solution
Permission denied Wrong credentials or file permissions Verify username/password and check SSH key permissions
Connection refused SSH service not running or wrong port Check service status and verify port configuration
Host key verification failed Changed server fingerprint Remove old key from known_hosts file

Common Diagnostic Commands

# Check SSH service status
sudo systemctl status ssh

# View SSH logs
sudo journalctl -u ssh

# Test SSH configuration
sudo sshd -t

Conclusion

Enabling SSH on Debian 9 or 10 provides secure remote access capabilities essential for system administration. Proper configuration with security best practices like disabling root login, changing default ports, and restricting access enhances protection against unauthorized access. Regular system updates and monitoring remain crucial for maintaining SSH security.

Updated on: 2026-03-17T09:01:38+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements