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 命令的执行结果日志。