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

如何防止MacOS休眠后丢失Git访问凭证?

解决方案

方法1:配置SSH自动利用钥匙串持久化密钥

这是最彻底的解决方式,让MacOS钥匙串自动管理SSH密钥,休眠后无需手动操作:

  1. 首先将密钥添加到钥匙串,执行命令:
ssh-add --apple-use-keychain ~/.ssh/id_rsa

如果之前已经手动添加过密钥,先执行ssh-add -d ~/.ssh/id_rsa清除旧的条目,再执行上面的命令。

  1. 编辑~/.ssh/config文件(如果没有就创建),添加以下配置:
Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

这个配置会让SSH在需要时自动将密钥加入agent,并通过钥匙串保存密钥的解锁状态,休眠恢复后自动生效。

方法2:修改Shell配置文件自动维护ssh-agent

如果不想修改SSH配置,可以通过Shell启动脚本自动检查并重启ssh-agent、加载密钥:

  1. 根据你使用的Shell,编辑对应的配置文件:

    • 若使用Zsh:编辑~/.zshrc
    • 若使用Bash:编辑~/.bash_profile或~/.bashrc
  2. 添加以下脚本内容:

# 检查并维护ssh-agent会话
if [ -z "$SSH_AUTH_SOCK" ]; then
  # 查找已存在的ssh-agent套接字
  SSH_AUTH_SOCK=$(find /tmp/ssh-* -name agent.* | head -n 1)
  export SSH_AUTH_SOCK
fi

# 如果agent未运行或没有加载密钥,重新启动并加载
if [ -z "$SSH_AUTH_SOCK" ] || ! ssh-add -l >/dev/null 2>&1; then
  eval "$(ssh-agent -s)"
  ssh-add --apple-use-keychain ~/.ssh/id_rsa
fi
  1. 保存文件后,执行source ~/.zshrc(或对应Shell的配置文件)让修改立即生效,之后每次终端启动都会自动处理ssh-agent的状态,休眠恢复后打开终端也会自动重新加载密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:45:43