如何在 Debian 10 上生成和设置 SSH 密钥?
介绍
在当今世界,大部分通信和数据传输都通过网络和互联网进行,安全已成为一个至关重要的议题。不安全的网络可能允许恶意用户拦截、修改或窃取敏感数据。为了确保网络通信安全,加密起着至关重要的作用。
安全外壳协议 (SSH) 是一种加密协议,允许您安全地访问远程系统。它在不安全的网络上提供两个不受信任的主机之间的安全通信。
SSH 密钥是 SSH 用于系统之间安全通信的身份验证凭据。与仅使用密码相比,它们提供了一种更安全的方式来登录服务器。
在 Debian 10 上生成 SSH 密钥
SSH 密钥是保护您互联网通信的有效方法。通过使用 SSH 密钥,您可以确保只有授权方才能访问您的服务器。在 Debian 10 上生成密钥是一个简单的过程,涉及使用 ssh-keygen 命令行工具。
使用 ssh-keygen 命令生成 SSH 密钥的分步指南
要在 Debian 10 上生成 SSH 密钥,您需要遵循以下几个简单的步骤:
打开您的终端并输入以下命令:
ssh-keygen
系统将提示您输入新密钥文件的名称和位置。
默认位置通常是 ~/.ssh/id_rsa,这在大多数情况下都可以。如果您想更改位置或文件名,现在可以这样做。
接下来,系统将提示您输入密码短语。密码短语通过使用密码加密您的私钥来增加额外的安全层。
强烈建议您选择一个包含大小写字母、数字和符号的强密码短语。
输入两次密码短语后,ssh-keygen 将生成两个文件:一个私钥文件 (id_rsa) 和一个公钥文件 (id_rsa.pub)。
在 Debian 10 服务器上设置 SSH 密钥
有两种方法可以将公钥复制到服务器:使用 ssh-copy-id 命令或手动通过 SFTP/SCP 复制。
使用 ssh-copy-id 命令复制公钥
将您的公钥复制到服务器的最简单方法是使用 ssh-copy-id 命令。此命令将您的公钥文件 (通常名为 id_rsa.pub) 的内容复制到远程计算机主目录中名为 authorized_keys 的文件。
要使用此方法,请在终端窗口中运行以下命令:
ssh-copy-id username@remote_host
将 `username` 替换为您在远程计算机上的用户名,将 `remote_host` 替换为其 IP 地址或主机名。系统将提示您输入远程计算机上的密码,之后您的公钥将被复制。
手动复制公钥
如果您不想使用 ssh-copy-id,您可以手动通过 SFTP 或 SCP 复制您的公钥。首先,通过运行以下命令找到您的公钥文件:
cat ~/.ssh/id_rsa.pub
复制打印出的所有内容(包括开头的“ssh-rsa”,但不包括末尾的用户名@主机名)。接下来,使用 FileZilla 或 WinSCP 等 SFTP/SCP 客户端连接到您的远程计算机。
导航到您的主目录,如果不存在,则创建一个名为 authorized_keys 的新文件。在编辑器中打开此文件,然后粘贴您刚刚复制的内容。
使用以下命令设置正确的权限:
chmod 600 ~/.ssh/authorized_keys
禁用密码身份验证以增强安全性
将您的公钥复制到服务器后,您应该禁用密码身份验证以增强安全性。这确保只有拥有正确私钥的用户才能访问服务器。要禁用密码身份验证,请在远程计算机上编辑 /etc/ssh/sshd_config 文件,方法是运行:
sudo nano /etc/ssh/sshd_config
找到显示 `#PasswordAuthentication yes` 的行,并将其更改为 `PasswordAuthentication no`。
保存并关闭文件。使用以下命令重新启动 SSH 服务:
sudo systemctl restart sshd
您现在将能够仅使用您的 SSH 密钥登录到您的远程计算机。
将 SSH 密钥与 Git 仓库一起使用
如何将您的公钥添加到您的 Git 帐户?
将您的公钥添加到您的 Git 帐户是在 Git 仓库中使用 SSH 密钥的重要步骤。使用 ssh-keygen 命令生成密钥后,您需要复制公钥文件 (通常名为 id_rsa.pub) 的内容,并将其粘贴到您的 Git 帐户设置中。为此,请登录到您的 Git 帐户,然后导航到设置页面中的 SSH 密钥部分。
配置本地计算机上的 Git 客户端以使用 SSH 而不是 HTTPS
默认情况下,大多数 Git 客户端在与远程仓库通信时使用 HTTPS。但是,将您的公钥添加到您的 Git 帐户并设置 SSH 身份验证后,建议您配置本地计算机上的 Git 客户端以使用 SSH 协议而不是 HTTPS。
为此,请打开终端或命令提示符,然后导航到要从 HTTPS 切换到 SSH 的仓库。然后运行以下命令:
git remote set-url origin [email protected]:/.git
将 `` 替换为您的用户名,将 `` 替换为要切换到的仓库的名称。
管理 SSH 密钥的最佳实践
您应该多久轮换一次密钥?
管理 SSH 密钥的最佳实践之一是定期轮换它们。这意味着生成新的密钥对并替换旧密钥对。轮换频率取决于所需的安全性级别以及密钥对的使用频率。
对于高安全环境,建议每 90 天或更短时间轮换一次密钥。此外,如果怀疑密钥可能已被泄露,则应立即轮换密钥。
如有必要,如何撤销访问权限?
撤销访问权限意味着阻止未经授权的用户使用其 SSH 密钥对访问您的服务器。如果您怀疑有人可能泄露了您的私钥,或者曾经被授权但不再需要访问权限的人,您可以通过从服务器上的 authorized_keys 文件中删除其公钥来撤销其访问权限。
保护私钥的技巧
私钥必须始终保持安全,因为拥有此文件可以完全控制任何安装其对应的公钥作为授权登录密钥的系统。
有多种方法可以保护您的私钥:
使用强密码短语保护它们
将它们存储在加密存储中,例如外部硬盘驱动器
使用密码管理器管理您的 SSH 密钥并确保其安全
不要与任何人共享它们,也不要将它们上传到在线存储或 Git 仓库。
请记住,如果您的私钥被泄露,您需要立即撤销访问权限并生成新的密钥对。保护您的私钥是防止未经授权访问您的系统的首要防线。
结论
在 Debian 10 上生成和设置 SSH 密钥是确保服务器和客户端之间安全通信的关键步骤。与传统的基于密码的身份验证相比,使用 SSH 密钥具有许多优势,包括更高的安全性、便利性和易用性。按照本文中概述的分步指南,您可以快速轻松地生成和设置您的 SSH 密钥。