在现代 Linux 系统管理中,使用 SSH 密钥进行身份验证是一种比传统密码更安全、更高效的方式。本文将手把手教你如何在 RockyLinux 系统中使用 ssh-keygen 命令生成 SSH 密钥对,并配置免密登录,即使是 Linux 新手也能轻松上手。
什么是 SSH 密钥?
SSH(Secure Shell)密钥是一对加密密钥:一个公钥(public key)和一个私钥(private key)。公钥可以安全地放在远程服务器上,而私钥必须严格保密,保存在本地。当客户端尝试连接服务器时,SSH 协议会通过这对密钥验证身份,从而实现免密安全登录。
第一步:打开终端并检查 SSH 客户端
首先,确保你的 RockyLinux 系统已安装 OpenSSH 客户端(通常默认已安装)。在终端中输入以下命令:
ssh -V
如果看到类似
OpenSSH_8.7p1, OpenSSL 1.1.1k的输出,说明 SSH 客户端已就绪。
第二步:使用 ssh-keygen 生成密钥对
在终端中运行以下命令来生成新的 SSH 密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"
参数说明:
-t ed25519:指定使用 Ed25519 算法(推荐,比 RSA 更安全高效)
-C "your_email@example.com":添加注释(通常是你的邮箱,便于识别)
系统会提示你选择保存密钥的路径(默认为
~/.ssh/id_ed25519),直接按回车使用默认路径即可。
Enter file in which to save the key (/home/username/.ssh/id_ed25519):
接下来,你可以设置一个密钥密码(passphrase)。虽然不是必须的,但建议设置以增强安全性。如果你希望完全免密登录,可直接按回车跳过。
Enter passphrase (empty for no passphrase): Enter same passphrase again:
成功后,你会看到类似以下输出:
Your identification has been saved in /home/username/.ssh/id_ed25519Your public key has been saved in /home/username/.ssh/id_ed25519.pubThe key fingerprint is:SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_email@example.comThe key's randomart image is:+--[ED25519 256]--+| .o || o.. || . o || . . || . S || . + o || . = * + || = O B o || . + @E+ |+----[SHA256]-----+
第三步:将公钥复制到远程服务器
现在你需要把公钥(
~/.ssh/id_ed25519.pub)内容添加到目标服务器的
~/.ssh/authorized_keys文件中。最简单的方法是使用
ssh-copy-id命令:
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@remote_server_ip
系统会提示你输入远程服务器的密码。输入后,公钥将自动复制过去。
第四步:测试免密登录
现在尝试 SSH 登录远程服务器:
ssh username@remote_server_ip
如果一切配置正确,你将无需输入密码即可成功登录!这正是我们所说的 免密SSH连接。
常见问题与安全建议
确保私钥文件(如id_ed25519)权限为
600:
chmod 600 ~/.ssh/id_ed25519 不要将私钥上传到 GitHub 或其他公共平台! 定期轮换 SSH 密钥以提升 Linux安全登录 级别。 总结
通过本教程,你已经掌握了在 RockyLinux 中使用
ssh-keygen
命令生成 SSH 密钥对的完整流程。无论是用于服务器管理、自动化脚本还是 Git 操作,SSH 密钥都能为你提供更安全、更便捷的身份验证方式。记住,良好的安全习惯从正确的密钥管理开始! 关键词回顾:RockyLinux ssh-keygen, SSH密钥生成, Linux安全登录, 免密SSH连接
