付费资源

隐藏内容限时特惠
此内容已隐藏,请购买后查看!
¥0.2 ¥1
您当前未登录!建议登陆后购买,可保存购买订单。
免费更新
客服服务
SSH(Secure Shell)是Linux系统中远程管理服务器的标准协议,而ssh-keygen则是生成和管理SSH密钥的核心工具。掌握这个命令不仅能提高系统安全性,还能简化日常的远程登录操作。本文将详细介绍如何使用ssh-keygen创建、管理和应用SSH密钥对。
传统的密码认证方式存在被暴力破解的风险,而SSH密钥认证提供了更高级别的安全保障。它采用非对称加密技术,通过公钥和私钥的配对来验证身份,比单纯依赖密码更加安全可靠。
使用SSH密钥认证的主要优势包括:
大多数Linux发行版默认已安装OpenSSH套件,包含ssh-keygen工具。要检查是否安装,可以运行:
ssh-keygen --version
生成新的SSH密钥对非常简单:
ssh-keygen -t rsa -b 4096
这个命令会创建一个4096位的RSA密钥对。系统会提示你选择保存位置(默认为~/.ssh/id_rsa)和设置密钥密码(可选)。
ssh-keygen支持多种加密算法,各有特点:
RSA:最广泛支持的算法
ssh-keygen -t rsa -b 4096
建议密钥长度至少2048位,4096位更安全
ECDSA:基于椭圆曲线,更高效
ssh-keygen -t ecdsa -b 521
Ed25519:最新算法,安全性高且性能好
ssh-keygen -t ed25519
常用参数说明:
-f
:指定密钥文件路径-C
:添加注释(通常用邮箱标识)-N
:设置密钥密码-p
:更改现有密钥的密码为不同用途创建独立密钥是个好习惯:
ssh-keygen -t ed25519 -f ~/.ssh/work_github -C "work_email@example.com"
ssh-keygen -t rsa -b 4096 -f ~/.ssh/personal_server -C "personal_email@example.com"
虽然设置密码会增加一些使用时的麻烦,但能显著提高安全性:
ssh-keygen -p -f ~/.ssh/id_rsa
定期更换密钥是安全运维的重要部分:
ssh-keygen -t ed25519 -C "git_user@example.com"
cat ~/.ssh/id_ed25519.pub | ssh user@git-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
# 创建无密码密钥专用于备份
ssh-keygen -t rsa -b 4096 -f ~/.ssh/backup_key -N ""
ssh-copy-id -i ~/.ssh/backup_key backup-user@backup-server
在多级跳转环境中,可以配置SSH Agent转发:
ssh-add ~/.ssh/production_key
ssh -A jump-server
问题1:权限过宽导致SSH拒绝密钥
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 700 ~/.ssh
问题2:密钥格式不兼容
ssh-keygen -p -f ~/.ssh/old_key -m PEM
问题3:忘记密钥密码
ssh-keygen -p -f ~/.ssh/id_rsa -N ""
ssh-keygen -V
设置密钥有效期ssh-keygen -t ed25519 -V +4w -f ~/.ssh/temp_key
掌握ssh-keygen的使用不仅能提升Linux系统管理效率,还能显著增强系统安全性。通过合理配置和管理SSH密钥,你可以构建一个既方便又安全的远程访问环境。