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

升级Ubuntu 23.10至24.04后ssh-add命令异常求助

升级Ubuntu 23.10至24.04后ssh-add命令异常求助

嗨,看你升级Ubuntu版本后碰到了ssh-add -l报错的问题,我来给你捋捋可能的原因和解决思路~

先复盘下你的问题:

  • 升级前一切正常,升级后执行ssh-add -l直接返回error fetching identities: Invalid key length
  • 当前使用的SSH版本:OpenSSH_9.6p1 Ubuntu-3ubuntu13, OpenSSL 3.0.13 30 Jan 2024
  • 从strace输出能看到,命令是连接到gpg-agent的SSH套接字后出现的异常

为什么会出现这个错误?

这个报错大概率和过时的密钥算法或者gpg-agent与新版OpenSSH的兼容性有关。OpenSSH 9.0之后对弱密钥(比如长度不足2048位的RSA密钥、使用SHA-1签名的密钥)限制更严格了,而gpg-agent如果没跟上新版本的要求,处理这些密钥时就会触发“无效密钥长度”的错误。

试试这些解决办法:

  • 检查并更新你的SSH密钥
    先看看你的密钥是不是不符合新标准了:

    ssh-keygen -l -f ~/.ssh/id_rsa  # 换成你实际的密钥文件名
    

    如果是RSA密钥且长度小于2048位,或者用了SHA-1签名,建议生成新的安全密钥:

    ssh-keygen -t ed25519 -C "你的邮箱地址"
    

    生成完记得把新公钥同步到你需要连接的服务器的~/.ssh/authorized_keys里哦。

  • 调整gpg-agent配置
    编辑~/.gnupg/gpg-agent.conf(没有的话直接创建),添加以下内容:

    enable-ssh-support
    default-cache-ttl-ssh 86400
    max-cache-ttl-ssh 86400
    

    然后重启gpg-agent生效:

    gpg-connect-agent reloadagent /bye
    
  • 临时绕开gpg-agent测试
    如果你想先确认是不是gpg-agent的问题,可以临时指定用原生ssh-agent来运行命令:

    SSH_AUTH_SOCK=$(ss -lxp | grep ssh-agent | awk '{print $6}' | sed 's/,//') ssh-add -l
    

    如果这个命令能正常显示密钥,那说明问题确实在gpg-agent上。你可以考虑切换回原生ssh-agent:
    编辑~/.bashrc或者~/.zshrc(看你用的哪个shell),加上:

    unset SSH_AUTH_SOCK
    eval $(ssh-agent -s)
    

    重启终端后再用ssh-add ~/.ssh/id_rsa重新添加密钥试试。

  • 更新系统组件
    有时候系统包的兼容性bug会导致这类问题,先把所有包更到最新试试:

    sudo apt update && sudo apt upgrade -y
    

备注:内容来源于stack exchange,提问作者jason120

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 09:19:50