2025-05-19 11:47:26
245

如何设置Linux服务器的SSH密钥认证以提高安全性?

摘要
随着互联网的发展,网络攻击和数据泄露事件频发。为了确保Linux服务器的安全性,我们可以通过启用SSH密钥认证来替代传统的密码登录方式。SSH(Secure Shell)是一种用于远程管理系统的安全协议,它允许用户通过加密连接访问服务器。与使用密码相比,SSH密钥认证具有更高的安全性,并且可以防止暴力破解等攻击手段。 …...

随着互联网的发展,网络攻击和数据泄露事件频发。为了确保Linux服务器的安全性,我们可以通过启用SSH密钥认证来替代传统的密码登录方式。SSH(Secure Shell)是一种用于远程管理系统的安全协议,它允许用户通过加密连接访问服务器。与使用密码相比,SSH密钥认证具有更高的安全性,并且可以防止暴力破解等攻击手段。

如何设置Linux服务器的SSH密钥认证以提高安全性?

一、生成密钥对

在本地计算机上打开终端窗口,然后输入以下命令来创建一个新的SSH密钥对:

ssh-keygen -t rsa -b 4096

该命令会生成一个基于RSA算法的4096位私钥和公钥。系统将会询问您要将生成的密钥保存到哪个文件中,默认路径为~/.ssh/id_rsa,您可以直接按回车键接受默认值。接下来,根据提示设置一个用于保护私钥的密码短语(passphrase),即使私钥被窃取,没有密码短语也无法使用。

二、复制公钥到服务器

现在我们需要将刚刚生成的公钥上传至目标Linux服务器。有两种方法可以实现这一步骤:

1. 使用ssh-copy-id命令:
如果您的服务器支持此命令,则可以在本地计算机上运行以下命令:
ssh-copy-id username@server_ip_address
其中,将username替换为您的用户名,将server_ip_address替换为服务器的实际IP地址。此命令会自动将公钥添加到服务器上的~/.ssh/authorized_keys文件中。

2. 手动复制公钥:
如果您无法使用ssh-copy-id命令,则需要手动完成这项工作。在本地计算机上打开~/.ssh/id_rsa.pub文件并复制其内容。然后登录到服务器并编辑~/.ssh/authorized_keys文件(如果没有此文件,请先创建)。最后将公钥粘贴到该文件中并保存更改。

三、配置SSH服务端

为了让服务器只允许使用SSH密钥进行身份验证,我们需要修改SSH服务端的配置文件。通常情况下,该文件位于/etc/ssh/sshd_config
使用文本编辑器打开此文件,并查找以下几行:
#PubkeyAuthentication yes
取消注释(删除前面的“#”符号),以启用公钥认证。
为了进一步增强安全性,建议禁用密码登录功能。找到以下行:
#PasswordAuthentication yes
将其更改为:
PasswordAuthentication no
完成后保存文件并重新启动SSH服务使更改生效。
对于基于Debian/Ubuntu系统的服务器,可以执行以下命令重启服务:
sudo service ssh restart
对于基于Red Hat/CentOS系统的服务器,可以执行以下命令重启服务:
sudo systemctl restart sshd

四、测试新的登录方式

现在从本地计算机尝试再次连接到服务器。如果一切正常,您应该能够顺利登录而无需输入密码。但是请注意,首次连接时仍需输入用于保护私钥的密码短语(如果您设置了的话)。由于我们已经禁用了密码登录,因此如果您忘记携带私钥或丢失了私钥文件,则将无法再通过SSH访问服务器。为了避免这种情况发生,建议您妥善保管好私钥,并考虑创建多个SSH密钥对以便备用。

声明:文章不代表云主机测评网观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
回顶部