使用ssh连接github或gitee - 已创建密钥但依旧无法使用git命令无法连接, 显示git@github.com: Permission denied (publickey).
阅读须知
本文面向入门, 可能有出现错误的情况, 欢迎指出.
本文主要引导解决与发现问题的方法, 解决方案可以翻到最下面
代码块中
$
开头表示输入内容
>
开头代表输出内容
#
后面代表注释的内容
示例如下
$ 我是输入内容
> 我是输出内容 # 我是注释,用于解释发生了什么
场景
在添加ssh的教程中,一般都会让我们使用
ssh git@github.com
验证是否连接成功
首先按需求使用ssh-keygen
创建密钥(请确保密钥在~/.ssh中)
> Enter file in which to save the key: mykey # 请记住这里, 是出现问题的主要原因
> Enter passphrase (empty for no passphrase): 114514 # 这一步和下一步都是设置密码, 不输入也可以. 实际输入的时候你是看不到内容的, 这是正常现象.
> Enter same passphrase again:114514
使用'ssh git@github.com'连接
此时请确保已将
公钥(.pub)!!!
添加到github/gitee
$ ssh git@github.com
> git@github.com: Permission denied (publickey).
可以看到明明在github/gitee
中 添加了公钥, 私钥位置也没问题, 但是却依旧连接失败
原因
这里可以用到 -v
参数, 这个参数可以显示连接时的日志.
使用
-vvv
能看到更详细的信息, 但这里不需要, 对这些信息代表什么感兴趣的可以去看看ssh连接调试
.
$ssh git@github -v
...
> debug1: Will attempt key: /c/Users/xxx/.ssh/id_rsa
> debug1: Will attempt key: /c/Users/xxx/.ssh/id_ecdsa
> debug1: Will attempt key: /c/Users/xxx/.ssh/id_ecdsa_sk
> debug1: Will attempt key: /c/Users/xxx/.ssh/id_ed25519
> debug1: Will attempt key: /c/Users/xxx/.ssh/id_ed25519_sk
> debug1: Will attempt key: /c/Users/xxx/.ssh/id_xmss
> debug1: Will attempt key: /c/Users/xxx/.ssh/id_dsa
...
可以看到, 连接日志并没有尝试我们的/c/Users/xxx/.ssh/mykey
私钥
那么原因已经出来了: 因为我们命名了密钥, 但是ssh连接默认是会使用默认名称的, 并不是我们放在~./ssh
目录下就自动读取
解决方案
知道了原因, 解决方法就是告诉ssh去使用我们的密钥, 主要有以下两种方法
1. 使用-i
参数指定私钥位置
这种方法每次都要指定私钥位置, 不方便, 不太推荐
$ ssh git@github -i ~/.ssh/mykey # 这里mykey是你命名的私钥名称
2. 使用config
配置文件
在~/.ssh/config
添加文件config
在里面添加内容
Host github.com
User git
IdentityFile ~/.ssh/mykey # 这里mykey换成你命名的私钥名称
在配置文件中使用配置项IdentityFile
指定了连接github使用的密钥.
再次尝试, 已经可以正常连接了.
3. 拓展内容
关于ssh, config里还有许多方便的配置, 感兴趣也可以去了解一下.
比如
Host github
HostName github.com
User git
IdentityFile ~/.ssh/mykey
这样甚至可以直接使用ssh github
连接
只是用于示例, git没有必要这样使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)