SSH 公钥和私钥¶
先决条件¶
- 在命令行操作具有一定的便利性
- 已安装 openssh 的 Linux 服务器或工作站
- 可选:熟悉 Linux 文件和目录权限
简介¶
SSH 是一种从一台机器访问另一台机器的协议,通常通过命令行进行。使用 SSH,您可以远程运行命令、发送文件,并从一个地方管理您所做的一切。
当处理位于不同位置的多个 Rocky Linux 服务器,或试图节省访问这些服务器的时间时,您将需要使用 SSH 公钥和私钥对。密钥对使登录远程机器和运行命令更加容易。
本文档将引导您创建密钥并设置服务器以使用这些密钥进行访问。
生成密钥的流程¶
以下命令均在您的 Rocky Linux 工作站的命令行中运行
ssh-keygen -t rsa
这将显示以下内容
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
按 ENTER 接受默认位置。接下来系统将显示
输入密码(留空表示无密码)
在此按 ENTER。最后,它会要求您重新输入密码
再次输入相同的密码
最后一次按 ENTER。
您现在将在您的 .ssh 目录中拥有一个 RSA 类型的公钥和私钥对
ls -a .ssh/
. .. id_rsa id_rsa.pub
您需要将公钥 (id_rsa.pub) 发送到您将要访问的每台机器。在执行此操作之前,您需要确保能够通过 SSH 登录到您发送密钥的服务器。本示例使用三台服务器。
您可以通过 DNS 名称或 IP 地址访问它们,但本示例使用的是 DNS 名称。示例服务器是 web、mail 和 portal。对于每台服务器,您将通过 SSH 登录(技术宅喜欢将 SSH 用作动词)并保持一个终端窗口打开
ssh -l root web.ourourdomain.com
如果您可以顺利登录所有三台机器,下一步就是将您的公钥发送到每台服务器。使用 ssh-copy-id
命令执行此操作
ssh-copy-id -i ~/.ssh/id_rsa.pub
user@web.ourdomain.com
对您的三台机器中的每一台重复此步骤。这将用您的公钥填充每台服务器上的 authorized_keys 文件。
尝试从您的 Rocky Linux 工作站再次 SSH 到服务器。您应该不会收到密码提示。
SSH 目录和 authorized_keys
安全¶
在您的每台目标机器上,确保应用以下权限
chmod 700 .ssh/
chmod 600 .ssh/authorized_keys
作者:Steven Spencer
贡献者:Ezequiel Bruni, Ganna Zhyrnova