当前位置:首页 > Centos > 正文

CentOS SSH密钥生成(手把手教你使用ssh-keygen命令实现安全免密登录)

在现代 Linux 系统管理中,使用 SSH 密钥认证 是提升服务器安全性和操作效率的重要手段。本文将详细讲解如何在 CentOS 系统中使用 ssh-keygen 命令生成 SSH 密钥对,并配置免密登录,即使你是 Linux 新手也能轻松上手。

什么是 SSH 密钥?

SSH(Secure Shell)是一种加密的网络协议,用于安全地远程登录和管理系统。传统的密码登录方式容易受到暴力破解攻击,而使用 SSH 密钥认证 则更加安全高效。它包含一对密钥:

  • 私钥(Private Key):保存在本地,绝不外泄。
  • 公钥(Public Key):上传到远程服务器,用于验证身份。
CentOS SSH密钥生成(手把手教你使用ssh-keygen命令实现安全免密登录) SSH密钥生成 ssh-keygen命令教程 SSH免密登录 Linux安全远程连接 第1张

第一步:检查是否已安装 OpenSSH

CentOS 通常默认已安装 OpenSSH 客户端。你可以通过以下命令确认:

ssh -V  

如果看到类似 OpenSSH_8.0p1, OpenSSL 1.1.1k 的输出,说明已安装。

第二步:使用 ssh-keygen 生成密钥对

打开终端,输入以下命令开始生成 SSH 密钥:

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

参数说明:

  • -t rsa:指定密钥类型为 RSA(也可用 ed25519,更现代)
  • -b 4096:指定密钥长度为 4096 位(更安全)
  • -C "your_email@example.com":添加注释,通常为邮箱,便于识别

执行后,系统会提示你选择保存路径(默认为 ~/.ssh/id_rsa),直接按回车即可:

Enter file in which to save the key (/home/your_user/.ssh/id_rsa):  

接着会提示设置密码(passphrase)。如果你希望完全免密登录,可直接按回车跳过(不推荐用于生产环境);否则输入一个强密码以增加安全性。

第三步:查看生成的密钥文件

进入 .ssh 目录查看:

ls -l ~/.ssh/# 输出应包含:# id_rsa      ← 私钥(切勿泄露!)# id_rsa.pub  ← 公钥(可上传)  

第四步:将公钥复制到远程 CentOS 服务器

使用 ssh-copy-id 命令是最简单的方式:

ssh-copy-id user@remote_server_ip  

系统会提示你输入远程服务器的密码。成功后,公钥将被追加到远程服务器的 ~/.ssh/authorized_keys 文件中。

如果没有 ssh-copy-id,也可以手动复制:

cat ~/.ssh/id_rsa.pub | ssh user@remote_server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"  

第五步:测试 SSH 免密登录

现在尝试登录远程服务器:

ssh user@remote_server_ip  

如果配置正确,你将无需输入密码即可登录!

常见问题与安全建议

  • 确保私钥文件权限为 600chmod 600 ~/.ssh/id_rsa
  • 远程服务器的 ~/.ssh 目录权限应为 700authorized_keys 权限为 600
  • 建议在生产环境中为私钥设置 passphrase,结合 ssh-agent 使用
  • 定期轮换密钥,提升系统安全性

总结

通过本教程,你已经掌握了在 CentOS 上使用 ssh-keygen 命令生成 SSH 密钥对,并成功配置了 SSH 免密登录。这不仅提升了远程连接的安全性,也大大简化了日常运维操作。无论是个人开发还是企业服务器管理,Linux 安全远程连接 都是必备技能。

赶快动手试试吧!如有疑问,欢迎在评论区留言交流。