ssh-add重启后失效解决方法

问题描述

通过ssh的方式推送最新变更到远程仓库失败(已配置过ssh key且之前成功推送过)。

问题分析

使用ssh的方式管理远程仓库需要进行以下几步操作:

  • 本地生成ssh key。
  • 将ssh私钥通过ssh-add添加至ssh-agent。
  • 将ssh公钥配置到远程仓库。

其中ssh-add是将私钥添加到ssh-agent的高速缓存中,而高速缓存会在系统重启后被重置,因此每次重启电脑后需要通过ssh-add将私钥重新添加至ssh-agent

解决方案

通过修改~/.zshrc实现每次打开终端时自动将私钥添加至ssh-agent。

在终端输入vim ~/.zshrc

添加nohup ssh-add --apple-use-keychain ~/.ssh/id_github_rsa >/dev/null 2>&1后保存退出即可。

1
nohup ssh-add --apple-use-keychain ~/.ssh/id_github_rsa >/dev/null 2>&1

其中nohup>/dev/null 2>&1是为了避免每次启动终端输出 ssh-add 命令的执行结果日志。

参考文档

ssh-add重启后失效解决方法

Github关于SSH的介绍

ssh-agent详解

Linux的环境配置文件(startup文件)