SSH密钥使用默认文件名正常,修改为自定义文件名后无法生效如何解决
解决方案
核心原因
SSH客户端默认仅会读取~/.ssh目录下id_ed25519、id_rsa等默认命名的密钥,你自定义命名的密钥没有被配置为GitHub站点的专用密钥,所以连接时无法匹配到正确的密钥文件,触发权限不足报错。
一劳永逸配置方法
- 进入用户目录下的
.ssh文件夹:Windows对应路径为C:\Users\brent\.ssh,macOS/Linux对应路径为~/.ssh - 新建无后缀的纯文本文件,命名为
config - 在文件中写入以下配置:
Host github.com HostName github.com User git IdentityFile ~/.ssh/github_main IdentitiesOnly yes
注意:Windows系统下需要确保
config文件的权限足够安全,仅开放当前用户的读写权限,关闭其他用户的访问权限,否则SSH会出于安全规则忽略该配置文件。
- 保存文件后重新执行
ssh -T git@github.com验证连接,正常返回GitHub连接成功提示后,即可用自定义命名的密钥正常克隆、推送仓库。
多密钥扩展方案
如果后续需要使用多个不同用途的SSH密钥(比如区分个人GitHub账号、工作GitHub账号、其他代码托管平台密钥),只需要在config文件中追加对应的Host配置块即可,示例如下:
# 工作用GitHub账号配置 Host github-work HostName github.com User git IdentityFile ~/.ssh/github_work IdentitiesOnly yes
克隆工作账号的仓库时,将原SSH地址的git@github.com前缀替换为git@github-work,即可自动匹配对应的密钥,不会和其他账号的密钥冲突。
内容的提问来源于stack exchange,提问作者Brent Meeusen
相关产品推荐
相关产品推荐

