手动添加 SSH 私钥到 ssh-agent 以解决Permission denied (publickey) 错误
摘要: 在tmux中使用git push时出现认证失败,原因是tmux未继承ssh-agent环境变量,导致SSH密钥未加载。解决方案:1) 手动运行ssh-add加载私钥;2) 确保GitHub已添加对应公钥。经验:多会话工具需注意环境变量传递,多密钥需显式指定路径,推荐SSH+ssh-agent实现全局免密认证。(98字)
·
问题描述:
在 tmux 会话中使用 git push 时,提示需要输入 GitHub 用户名或出现 Permission denied (publickey) 错误,而在普通 shell 下则没有问题。
原因分析:
- tmux 会话未继承 ssh-agent 的环境变量,导致 SSH 密钥未被正确加载,GitHub 认证失败。
- SSH 私钥文件名为 id_ed25519_2,未被自动加载到 ssh-agent。
解决方案:
- 手动将 SSH 私钥添加到 ssh-agent:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519_2 - 确认 GitHub 账户已添加对应的公钥(id_ed25519_2.pub)。
- 在 tmux 会话中执行 git push,认证即可通过,无需重复输入用户名。
经验总结:
- SSH 认证依赖 ssh-agent 环境,tmux 等多会话工具需注意环境变量继承。
- 多密钥时需手动指定 ssh-add 路径。
- 推荐优先使用 SSH 方式 push,配合 ssh-agent 可实现全局免密认证。
更多推荐




所有评论(0)