问题描述:
在 tmux 会话中使用 git push 时,提示需要输入 GitHub 用户名或出现 Permission denied (publickey) 错误,而在普通 shell 下则没有问题。

原因分析:

  • tmux 会话未继承 ssh-agent 的环境变量,导致 SSH 密钥未被正确加载,GitHub 认证失败。
  • SSH 私钥文件名为 id_ed25519_2,未被自动加载到 ssh-agent。

解决方案:

  1. 手动将 SSH 私钥添加到 ssh-agent:
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519_2
    
  2. 确认 GitHub 账户已添加对应的公钥(id_ed25519_2.pub)。
  3. 在 tmux 会话中执行 git push,认证即可通过,无需重复输入用户名。

经验总结:

  • SSH 认证依赖 ssh-agent 环境,tmux 等多会话工具需注意环境变量继承。
  • 多密钥时需手动指定 ssh-add 路径。
  • 推荐优先使用 SSH 方式 push,配合 ssh-agent 可实现全局免密认证。
Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐