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

SSH密钥无法永久保存,每日需重复添加的问题求助

SSH密钥无法永久保存,每日需重复添加的问题求助

嗨,我来帮你搞定这个每天手动加SSH密钥的麻烦事儿!这种情况大多是因为ssh-agent每次重启会话(比如重启电脑、重新登录或者切换网络后)就会清空已加载的密钥,所以得让它自动帮你搞定加载的事儿,给你几个靠谱的解决方案:

  • 用SSH配置文件自动加载密钥
    这是最通用的方法,不管什么系统都适用。你需要编辑(没有的话就创建)~/.ssh/config文件,添加下面的内容:

    Host *
      AddKeysToAgent yes
      IdentityFile ~/.ssh/ssh_key
    

    解释下:AddKeysToAgent yes会让SSH在连接时自动把指定的密钥加到ssh-agent里,IdentityFile就是你的密钥文件路径。这样以后不管是Git操作还是SSH连接,都会自动加载密钥,不用再手动跑ssh-add了。

  • 让ssh-agent开机自动启动并记住密钥(分系统)

    • 如果你用的是macOS:系统其实自带的ssh-agent会自动启动,但如果你的密钥设置了密码,每次加载都要输密码的话,可以跑这个命令:ssh-add -K ~/.ssh/ssh_key,它会把密钥密码存在系统钥匙串里,之后开机或者切换网络后都会自动加载,不用再输密码也不用手动add了。
    • 如果你用的是Linux:可以把加载密钥的命令加到你的shell配置文件里,比如~/.bashrc或者~/.zshrc,加这一行:
      ssh-add ~/.ssh/ssh_key > /dev/null 2>&1
      
      这样每次打开终端的时候就会自动添加密钥。要是你的密钥有密码,第一次需要输入一次,之后可以用系统的密钥管理工具(比如gnome-keyring)来保存密码,下次就不用输了。另外还可以加一段检查ssh-agent是否运行的脚本,确保万无一失:
      if [ -z "$SSH_AUTH_SOCK" ]; then
        eval "$(ssh-agent -s)"
        ssh-add ~/.ssh/ssh_key > /dev/null 2>&1
      fi
      
  • 排查公司WiFi的特殊情况
    有时候公司网络环境可能会重置ssh-agent的环境变量,导致之前加载的密钥失效。这时候上面的shell配置脚本就很有用,每次打开终端都会重新检查并加载密钥。另外也可以确认下公司WiFi有没有限制ssh-agent的运行,不过这种情况比较少见。

先试试第一个SSH配置文件的方法,应该就能解决大部分问题了,如果还有问题再结合系统的自动启动配置调整~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 14:52:34