Software & AppsOperating SystemLinux

Allowing SSH Password Authentication from Certain IP Addresses

Ubuntu 6

Secure Shell (SSH) is a cryptographic network protocol that allows secure remote login from one computer to another. By default, SSH allows password authentication from any IP address. However, in certain scenarios, you may want to restrict this to only certain IP addresses. This article will guide you on how to allow SSH password authentication from specific IP addresses.

Quick Answer

To allow SSH password authentication from certain IP addresses, you can modify the SSH configuration file /etc/ssh/sshd_config by disabling global password authentication and using the Match directive to specify the IP address range. Additionally, you can allow password authentication for specific users from certain IP addresses using the AllowUsers directive. Remember to back up your original configuration file before making any changes.

Understanding SSH Password Authentication

SSH password authentication is a method that allows users to establish an SSH connection using their username and password. While this method is straightforward, it also poses a potential security risk if the password is weak or compromised. Hence, it’s recommended to restrict SSH password authentication to specific IP addresses to enhance security.

Configuring SSH for Password Authentication

To allow SSH password authentication from certain IP addresses, we need to modify the SSH configuration file, /etc/ssh/sshd_config.

Before making any changes, it’s recommended to back up the original configuration file. You can do this by running the following command:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

This command creates a backup of the sshd_config file named sshd_config.bak.

Disabling Global Password Authentication

To disable the global password authentication, open the sshd_config file with a text editor of your choice. Look for the line that contains PasswordAuthentication and set its value to no. If the line is commented out (starts with a #), remove the #.

PasswordAuthentication no

This configuration disables password authentication for all users and IP addresses.

Allowing Password Authentication for Certain IP Addresses

To allow password authentication for certain IP addresses, add a Match block at the end of the sshd_config file. The Match directive allows more specific configurations for users or addresses.

Here’s an example of how to use it:

Match address 192.0.2.0/24
 PasswordAuthentication yes

In this example, 192.0.2.0/24 is the IP address range for which password authentication is allowed. You can replace this with your desired subnet.

Applying the Changes

After making the changes, save and close the file. To apply the changes, reload the SSH configuration by running the following command:

service ssh reload

This command reloads the SSH service, applying the new configuration without disrupting active connections.

Allowing Password Authentication for Specific Users from Certain IP Addresses

In some cases, you may want to allow password authentication for specific users from certain IP addresses. You can do this using the AllowUsers directive. Here’s an example:

AllowUsers user1@192.168.*.*, user2@192.168.*.*

This configuration allows password authentication for user1 and user2 from any IP address in the 192.168 subnet.

Conclusion

Restricting SSH password authentication to specific IP addresses is a good practice to enhance the security of your SSH server. Remember to always back up your original configuration file before making any changes. Also, keep a shell running until you’ve validated the new configuration to avoid locking yourself out of the server.

For more information about SSH, you can visit the OpenSSH website.

How can I find the SSH configuration file?

The SSH configuration file is located at /etc/ssh/sshd_config. You can access it using a text editor of your choice.

Can I allow SSH password authentication from multiple IP addresses?

Yes, you can allow SSH password authentication from multiple IP addresses by adding multiple Match blocks in the sshd_config file. Each Match block can specify a different IP address or IP range.

Is it possible to allow SSH password authentication for some users and key-based authentication for others?

Yes, you can configure SSH to allow password authentication for specific users and key-based authentication for others. You can use the Match User directive in the sshd_config file to specify different authentication methods for different users.

How can I test if my SSH configuration changes are working?

After making changes to the SSH configuration file, you can test if the changes are working by opening a new terminal window and attempting to establish an SSH connection to the server from the allowed IP address. If the connection is successful using password authentication, then the changes have been applied correctly.

What should I do if I get locked out of the server after making SSH configuration changes?

If you get locked out of the server after making SSH configuration changes, you can access the server through an alternative method, such as a console or physical access. Once you have access, revert the changes made to the SSH configuration file and restart the SSH service to regain remote access.

Leave a Comment

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