You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将SSH密钥添加到ssh-agent,提示密钥文件不存在如何解决

报错核心原因

你执行sudo -s -H切换到root用户后,路径中的~会被解析为root用户的家目录/root,而你生成SSH密钥时如果是用普通用户(nulaxz)操作,密钥默认存储在/home/nulaxz/.ssh/路径下,因此在root会话中用相对路径查找会提示文件不存在。

查询本地SSH密钥存储位置

执行以下任意一种命令即可获取密钥完整路径:

  • 若当前仍在root会话中,执行全局搜索命令:
    find /home -name "*.pub" 2>/dev/null
    返回结果中后缀为.pub的是公钥文件,对应私钥为同路径下同名且去掉.pub后缀的文件。
  • 若切换回普通用户nulaxz操作,执行命令查看当前用户的所有SSH密钥:
    ls ~/.ssh/
    默认生成的私钥名称一般为id_rsa、id_ed25519,对应公钥为同名加.pub后缀。
正确的Git与GitHub SSH关联操作步骤

普通用户权限即可完成所有操作,无需切换root,可避免后续Git操作出现权限冲突:

  1. 退出当前root会话:
    exit
  2. 若未生成过SSH密钥,执行生成命令(替换为你的GitHub绑定邮箱):
    ssh-keygen -t ed25519 -C "xxx@xx.com"
    全程按回车即可,无需额外设置。
  3. 启动当前用户的ssh-agent:
    eval "$(ssh-agent -s)"
  4. 添加私钥到ssh-agent:
    ssh-add ~/.ssh/你的私钥文件名
    例如生成的是ed25519类型密钥,命令为ssh-add ~/.ssh/id_ed25519
  5. 查看公钥完整内容,复制全部内容到GitHub的SSH密钥设置页:
    cat ~/.ssh/你的公钥文件名.pub
  6. 测试连通性:
    ssh -T git@github.com
    返回包含You've successfully authenticated的提示即表示配置成功。
如需在root会话中添加密钥的临时解决方法

直接填写密钥的完整绝对路径即可,无需使用相对路径~,示例:
ssh-add /home/nulaxz/.ssh/你的私钥文件名

内容的提问来源于stack exchange,提问作者Nulaxz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:54:03