生成密钥
基本命令
ssh-keygen # 默认生成RSA-3072密钥,连续回车使用默认设置
- 密钥存储位置:
~/.ssh/id_rsa
(私钥)和~/.ssh/id_rsa.pub
(公钥)
指定密钥算法和长度
ssh-keygen -t ed25519 # Ed25519算法(推荐)
ssh-keygen -t rsa -b 4096 # RSA-4096
ssh-keygen -t ecdsa -b 384 # ECDSA-384
添加注释
ssh-keygen -C "your_comment" # 公钥尾部会显示注释(通常用邮箱)
发送密钥
手动操作
- 查看本地公钥:
cat ~/.ssh/id_rsa.pub
- 将公钥内容追加到服务器的
~/.ssh/authorized_keys
文件:echo "公钥内容" >> ~/.ssh/authorized_keys
自动发送
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server # 需提前配置SSH密码登录
免密登录
权限配置(关键步骤!)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys # 必须严格限制权限
测试登录
ssh user@server # 自动使用默认密钥认证
多密钥管理
在 ~/.ssh/config
中指定密钥:
Host myserver
HostName server_ip
User username
IdentityFile ~/.ssh/custom_key
然后使用别名登录:
ssh myserver
关键说明
- 密钥安全:私钥权限必须为
600
,避免泄露 - 算法选择:
- 优先
Ed25519
(安全高效) - 次选
RSA-4096
(兼容性好)
- 优先
- 首次连接:需先通过密码登录服务器配置
authorized_keys
按此流程操作即可实现安全的SSH密钥认证。