Linux下系统重启后Git/GitHub无法识别自定义SSH密钥求助
解决Linux下Git自定义SSH密钥重启后失效的问题
问题根源
系统重启后,ssh-add添加的密钥会被清除,且Git默认优先尝试使用命名为id_ed25519的默认密钥,导致你的自定义密钥未被调用,进而触发权限拒绝。
解决方案
1. 配置SSH规则,指定GitHub使用自定义密钥
在~/.ssh目录下创建或编辑config文件,为GitHub设置专属密钥规则:
nano ~/.ssh/config
在文件中添加以下内容:
Host github.com-guilherme HostName github.com User git IdentityFile ~/.ssh/git_guilherme-key IdentitiesOnly yes
Host:自定义主机别名,用于区分不同GitHub账户的密钥IdentityFile:指定要使用的自定义密钥路径IdentitiesOnly yes:强制SSH仅使用指定的密钥,避免尝试其他默认密钥
保存并退出编辑器(nano按Ctrl+O回车确认,再按Ctrl+X)。
2. 使用别名访问GitHub仓库
- 新克隆仓库:用自定义主机别名替换原有的
github.comgit clone git@github.com-guilherme:你的GitHub用户名/你的仓库名.git - 修改已有仓库的远程地址:如果仓库已克隆到本地,执行以下命令更新远程链接
git remote set-url origin git@github.com-guilherme:你的GitHub用户名/你的仓库名.git
3. 设置密钥自动加载(解决重启后需重新添加密钥的问题)
编辑你的shell配置文件(bash用~/.bashrc,zsh用~/.zshrc):
nano ~/.bashrc
在文件末尾添加一行:
ssh-add ~/.ssh/git_guilherme-key > /dev/null 2>&1
保存退出后,让配置生效:
source ~/.bashrc
这行命令会在每次终端启动时自动加载你的自定义密钥,且不输出多余信息。
验证配置是否生效
执行以下命令测试SSH连接:
ssh -T git@github.com-guilherme
如果输出Hi 你的GitHub用户名! You've successfully authenticated, but GitHub does not provide shell access.,说明配置成功。
内容的提问来源于stack exchange,提问作者guilerme_coppola84
相关产品推荐
相关产品推荐

