SSH 服务器可以使用多种不同的方法对客户端进行身份验证。其中最基本的是密码认证,它易于使用,但不是最安全的。
现代处理能力与自动化脚本相结合,使得暴力破解受密码保护的帐户成为可能,因为密码通常并不复杂。SSH 密钥被证明是一种可靠且安全的替代方案。
什么是 SSH 密钥?
SSH 密钥对是两个加密安全的密钥,可用于向 SSH 服务器验证客户端。每个密钥对由一个公钥和一个私钥组成。
私钥由客户端保留在他的本地机器中,应该绝对保密。私钥的任何泄露都将允许攻击者登录到配置了相关公钥的服务器,而无需额外的身份验证。作为额外的预防措施,可以使用密码在磁盘上加密密钥。
公钥上传到您希望能够使用 SSH 登录的远程服务器上。当客户端尝试使用 SSH 密钥进行身份验证时,服务器可以测试客户端是否拥有私钥。如果客户端可以证明它拥有私钥,则会生成一个 shell 会话或执行请求的命令。
启用/禁用基于密码的身份验证
本文将为您提供在通过 SSH 加密密钥登录到您的服务器时启用/禁用基于密码的身份验证的步骤。针对 SSH 的密码身份验证还不错,但创建一个又长又复杂的密码也可能会鼓励您以不安全的方式存储它。使用加密密钥来验证 SSH 连接是一种更安全的替代方法。
启用密码认证
在启用基于密码的身份验证之前,请确保您已经拥有密码。如果要在启用基于密码的身份验证之前更改它,请以 root 用户身份登录,然后在终端中运行以下命令
passwd
系统将提示您输入新密码。输入您的新密码并完成设置过程。
以 root 用户身份登录服务器后,在编辑模式下打开 sshd_config 文件。您可以通过在终端中运行以下命令来执行此操作。我们将在本文中使用 vim 编辑器。按 I 编辑文件
vim /etc/ssh/sshd_config
查找PasswordAuthentication no行并将 no 替换为 yes。
PasswordAuthentication yes
按ESC键并将更改保存到文件中,然后键入:** wq!** 退出编辑器,然后按 Enter。
现在通过运行以下命令重新启动服务器。
service sshd restart
现在为 SSH 访问您的服务器启用了密码身份验证。
禁用密码验证
此步骤将向您解释在通过 SSH 登录到您的服务器时禁用基于密码的身份验证的步骤。在禁用基于密码的身份验证之前,请确保您已将公钥复制到服务器中,并且您的私钥与公钥匹配。如果您丢失了私钥并禁用了密码验证,那么您的服务器将无法访问。推荐阅读:《为什么我的 SSH 连接被拒绝》
从您的服务器以编辑模式打开 sshd_config 文件。您可以通过在终端中运行以下命令来执行此操作。我们将在本文中使用 vim 编辑器。按 I 编辑文件
vim /etc/ssh/sshd_config
查找PasswordAuthentication yes行并将 yes 替换为 no。
PasswordAuthentication no
按ESC键并将更改保存到文件中,然后键入:wq! 然后按 Enter。
现在通过运行以下命令重新启动服务器。
service sshd restart
现在从 SSH 访问您的服务器中删除了密码身份验证。
以上就是SSH 密钥是什么,如何启用和禁用的全部内容。推荐相关阅读:《SSH访问如何在共享主机计划上工作?》