使用场景
- Git SSH 拉取和提交时认证
- Linux SSH 远程登录认证
- Rsync 等工具使用时认证
创建 SSH 密钥对
ssh-keygen -t ed25519 -C "用户名@备注信息"
默认保存路径 ~/.ssh/
, 私钥: ~/.ssh/id_ed25519
, 公钥: ~/.ssh/id_ed25519.pub
在不支持ed25519 算法的老旧系统中生成密钥
ssh-keygen -t rsa -b 4096 -C "用户名@备注信息"
开启 ssh-agent 转发
# cat ~/.ssh/config
# 开启ssh-agent转发
Host *
ForwardAgent yes
# 针对特定主机开启 ssh-agent 转发
Host github
HostName github.com
IdentityFile ~/.ssh/id_ed25519
User git
ForwardAgent yes
启动 ssh-agent
eval $(ssh-agent -s)
将 SSH 私钥添加到 ssh-agent
ssh-add ~/.ssh/id_ed25519
或
ssh-add ~/.ssh/id_rsa
查看已添加到 ssh-agent 的 SSH 私钥
ssh-add -L
⚠️注意: 在 MacOS 上,当系统重新启动后,ssh-agent 再次启动时会 “忘记” 这个密钥。可以通过以下命令将SSH密钥导入到密钥链中:
/usr/bin/ssh-add -K ~/.ssh/id_ed25519
拷贝公钥到远程主机
1.命令快捷导入方法(推荐)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@ip
2.手动拷贝
将公钥拷贝,追加至远程主机 ~/.ssh/authorized_keys
文件中(不存在则请新建),并确保此文件权限为 0600
,(修改权限:chmod 0600 ~/.ssh/authorized_keys
)