Best Practices for Securing Your SSH Connections

Roman Yoga Adhika
3 min readFeb 4, 2024

--

Introduction

Secure Shell (SSH) is a fundamental tool for managing remote servers and devices securely. However, its ubiquity also makes it a prime target for attackers seeking unauthorized access to sensitive systems. In this blog post, we’ll discuss essential best practices for securing your SSH connections to safeguard your infrastructure and data.

To change the configuration, we can go to file /etc/ssh/sshd_config and then restart the service.

1. Change Default SSH Port

Changing the default SSH port from 22 to a non-standard port can help reduce the visibility of your SSH service to automated scanning tools. While this won’t deter determined attackers, it can mitigate a significant portion of automated attacks.

Example:

2. Disable Root Login

Disable direct root login via SSH and encourage users to log in with regular user accounts. After logging in, users can escalate their privileges using tools like ‘su’ or ‘sudo’ as needed, reducing the likelihood of unauthorized access.

Example:

3. Limit Users SSH Access

Limiting SSH access to specific users is an important aspect of security, especially in environments where only certain individuals require remote access.

Example:

4. Limit SSH Access using Firewall Rules (iptables)

Restrict SSH access to specific IP addresses or networks using firewall rules. By limiting access to trusted sources, you minimize the attack surface and mitigate the risk of unauthorized access.

Example:

4. Enable Connection Timeout

Set an idle timeout for SSH connections to automatically terminate inactive sessions. By enforcing connection timeouts, you mitigate the risk of unauthorized access if a session is inadvertently left open.

Example:

5. Activate Public Key Authentication

Public key authentication offers a higher level of security compared to password-based authentication. Generate SSH key pairs, distribute the public keys to authorized users, and disable password authentication whenever feasible.

6. Use Only SSH Version Protocol 2

SSH protocol version 1 has known security weaknesses and is considered obsolete. Ensure that your servers are configured to use SSH protocol version 2 exclusively to benefit from stronger cryptographic algorithms and enhanced security features.

7. Keep SSH Software Up-to-Date

Regularly updating your SSH software is crucial for staying protected against emerging security vulnerabilities. By promptly applying patches and updates, you mitigate the risk of exploitation by malicious actors.

Conclusion

Securing SSH connections is vital for protecting your systems and data integrity. By implementing these best practices, you can fortify defenses against unauthorized access and reduce security risks.

If there is anything else that needs to be improved or added, please let me know via Instagram.

Thank you.

--

--

Roman Yoga Adhika

Hello, my name is Roman Yoga Adhika, and I am passionate about network engineering.