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

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.com
    git 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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:43:32