指定ssh-key来登录Github

用ssh密钥连接到github仓库

生成 SSH

生成 SSH 密钥(如果还没有):

1
ssh-keygen -t ed25519 -C "you_email@email.com"

将公钥添加到平台

  • 复制公钥内容:cat ~/.ssh/id_ed25519.pub
  • 添加到 GitHub: Settings → SSH and GPG keys → New SSH key

我们想git clone一个自己的仓库,然后发现说没有权限
2025-03-18-18-05-49
可是我明明已经生成了密钥呀
这就好比有了钥匙,但是没把钥匙加入到开锁的钥匙串里,你不知道你有这把钥匙(弱智

列出所有SSH密钥文件

1
ls -al ~/.ssh

按回车接受默认路径,设置密码(可选)

添加密钥到 SSH 代理:

1
2
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

解释:

1. eval "$(ssh-agent -s)"

  • 作用:启动 ssh-agent 后台服务,并自动设置所需的环境变量(SSH_AUTH_SOCKSSH_AGENT_PID)。
    • ssh-agent 是一个管理 SSH 密钥的守护进程,它会记住你添加的密钥,避免每次使用密钥时重复输入密码。
    • eval 会解析 ssh-agent -s 的输出(环境变量设置命令),并直接在当前 Shell 中生效。

2. ssh-add ~/.ssh/id_ed25519

  • 作用:将指定的 SSH 私钥(id_ed25519)添加到 ssh-agent 中管理。
    • 如果私钥有密码保护,执行时会提示输入密码(只需输入一次,之后由 ssh-agent 自动管理)。
    • ~/.ssh/id_ed25519 是私钥文件的默认路径(根据你生成密钥时的设置)。

并且这样应该也适用于保管好密钥文件后,在别的PC上使用该密钥登录