15%

Alexhost 满足您的愿望

参与调查 并赢得奖品

21.10.2024
No categories

如何在MacOS或Linux上使用OpenSSH创建SSH密钥

在安全远程通信的世界中,SSH(安全外壳)是连接远程服务器最常用的协议之一。SSH提供了一种安全的方法,用于登录远程机器并通过网络执行命令。使用SSH密钥进行身份验证是最安全的方法之一,它允许无密码身份验证并增加了一层额外的安全性。SSH密钥成对出现:一个私钥和一个公钥。在本文中,我们将介绍如何在macOSLinux上使用OpenSSH创建SSH密钥的步骤。

什么是SSH密钥?

SSH密钥是一对用于将客户端(您的计算机)身份验证到SSH服务器的加密密钥。公钥放置在服务器上,而私钥保存在客户端机器上。当您尝试登录时,服务器会检查公钥与私钥以验证您的身份。与密码不同,SSH密钥不易受到暴力攻击,因此是一种高度安全的身份验证方法。

为什么使用SSH密钥?

  • 增强安全性:SSH密钥比传统密码更难破解,降低了未经授权访问的风险。
  • 无密码身份验证:设置完成后,SSH密钥允许您在每次登录服务器时无需输入密码。
  • 自动化过程:SSH密钥非常适合自动化脚本、备份和需要安全远程访问的文件传输。

前提条件

要遵循本指南,您需要:

  1. 一台安装了OpenSSH的macOSLinux机器(OpenSSH在这两个平台上默认包含)。
  2. 访问您将放置公钥的远程服务器。

创建SSH密钥的逐步指南

步骤1:打开终端

在macOS和Linux上,终端应用程序提供了运行命令行命令的界面。通过以下方式打开终端:

  • macOS:在Spotlight中搜索“终端”(按Cmd + Space或在应用程序 > 实用工具下找到它。
  • Linux:按Ctrl + Alt + T,或在应用程序菜单中查找终端。

步骤2:生成SSH密钥对

要生成新的SSH密钥对,请在终端中使用以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

选项说明:

  • -t rsa:指定要创建的密钥类型。RSA是最常用的算法之一。
  • -b 4096:将密钥长度设置为4096位,以增强安全性。
  • -C “your_email@example.com”:这为密钥添加注释,通常用于标识密钥。将其替换为您的电子邮件或描述性名称。

运行此命令后,您将看到类似的输出:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

步骤3:选择文件位置(可选)

默认情况下,密钥将保存在您的主文件夹中的.ssh目录下,命名为id_rsa(私钥)和id_rsa.pub(公钥)。按Enter确认默认位置,或者您可以指定不同的路径。

示例:

Enter file in which to save the key (/Users/yourusername/.ssh/id_rsa): [Press Enter]

步骤4:设置密码短语(可选但推荐)

接下来,系统会要求您为密钥设置密码短语:

Enter passphrase (empty for no passphrase):

密码短语通过要求您在每次使用私钥时输入它,提供了额外的安全层。如果您不想使用密码短语,可以将其留空(尽管建议使用以增强安全性)。

如果您设置了密码短语,请确保它是您能记住的内容,或者安全存储。

步骤5:确认密钥对的创建

完成步骤后,您将看到类似的输出:

 

 

这表明私钥(id_rsa)和公钥(id_rsa.pub)已成功创建并存储在.ssh目录中。

步骤6:将公钥复制到服务器

现在您已经生成了SSH密钥对,您需要将公钥复制到您想要登录的远程服务器。

您可以使用ssh-copy-id命令来自动化此过程:

ssh-copy-id user@your-server.com

user@your-server.com替换为您的实际用户名和服务器地址。系统会提示您输入远程服务器的密码。

另外,如果ssh-copy-id不可用,您可以手动复制公钥:

  1. 通过运行以下命令显示公钥的内容:
    cat ~/.ssh/id_rsa.pub
  2. 复制输出并将其粘贴到远程服务器的.ssh/authorized_keys文件中。您可以通过登录到服务器来执行此操作:
    ssh user@your-server.com

    然后,创建.ssh目录(如果不存在)并添加密钥:

    mkdir -p ~/.ssh
    echo "your-copied-public-key" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys

步骤7:测试SSH连接

将公钥复制到远程服务器后,您可以测试连接:

ssh user@your-server.com

如果一切设置正确,您应该能够登录而无需输入密码(除非您为密钥设置了密码短语,在这种情况下您需要输入它)。

管理SSH密钥

  • 列出所有密钥:如果您有多个密钥,可以通过导航到.ssh目录来列出它们:
    ls ~/.ssh
  • 将密钥添加到SSH代理:如果您想避免重复输入密码短语,可以将您的密钥添加到SSH代理:
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa

结论

在macOS或Linux上使用OpenSSH创建SSH密钥是一种简单而强大的方法,可以提高远程服务器连接的安全性。与仅依赖可能被猜测或暴力破解的密码相比,SSH密钥提供了一种更安全、更方便的加密身份验证方法。这使得它们成为现代服务器管理实践中不可或缺的一部分。

一旦生成,SSH密钥对允许您在每次登录服务器时无需输入密码。这不仅节省了时间,还减少了未经授权访问的风险。使用OpenSSH工具,创建、复制和管理密钥的过程非常简单,即使对于不是高级系统管理员的用户也是如此。最终结果是更顺畅的工作流程和对基础设施的更强保护。

例如,使用命令ssh-keygen -t ed25519 -C “your_email@example.com”可以创建一个新的SSH密钥,采用现代加密,并将其本地存储在您的机器上。在将公钥添加到服务器的~/.ssh/authorized_keys文件后,您可以使用ssh user@server连接,而无需输入密码。这种方法结合了安全性和效率,使SSH密钥对开发人员、系统管理员以及任何定期管理远程机器的人来说都非常重要。

15%

Alexhost 满足您的愿望

参与调查 并赢得奖品

Похожие записи не найдены.