330 字
2 分钟
SSH 密钥生成与 GitHub 配置速查
这篇用来复制 SSH key 相关命令。
生成 ed25519 key
ssh-keygen -t ed25519 -C "you@example.com" -f ~/.ssh/id_ed25519_github如果是给另一个 GitHub 账号单独生成 key,可以换文件名:
ssh-keygen -t ed25519 -C "blog@example.com" -f ~/.ssh/id_ed25519_r_gc查看公钥
cat ~/.ssh/id_ed25519_github.pub把输出内容复制到 GitHub:
GitHub -> Settings -> SSH and GPG keys -> New SSH key注意复制的是 .pub 公钥,不是没有后缀的私钥。
设置权限
chmod 700 ~/.sshchmod 600 ~/.ssh/id_ed25519_githubchmod 644 ~/.ssh/id_ed25519_github.pub如果权限太开放,SSH 可能会拒绝使用私钥。
启动 ssh-agent 并添加 key
eval "$(ssh-agent -s)"ssh-add ~/.ssh/id_ed25519_github查看 agent 里已有 key:
ssh-add -l从 agent 删除某个 key:
ssh-add -d ~/.ssh/id_ed25519_github清空 agent 中所有 key:
ssh-add -D测试 GitHub SSH
普通测试:
ssh -T git@github.com如果 ~/.ssh/config 里配置了 Host 别名:
ssh -T git@github-r-gc成功时通常会看到类似:
Hi USER! You've successfully authenticated, but GitHub does not provide shell access.常用参数解释
ssh-keygen:生成 SSH 密钥。
-t ed25519:指定密钥算法。现在一般优先用 ed25519。
-C "you@example.com":给 key 加注释,常用邮箱或用途,方便以后识别。
-f ~/.ssh/id_ed25519_github:指定生成文件路径和文件名。
.pub:公钥文件,可以上传到 GitHub。
没有 .pub 后缀的文件:私钥文件,不能公开。
ssh-agent:本地密钥代理,可以记住已添加的私钥。
ssh-add:把私钥加入 agent。
ssh -T:测试 SSH 认证,不打开远程 shell。
SSH 密钥生成与 GitHub 配置速查
https://r-gc.github.io/posts/notes/git-ssh/ssh-key-generation/