github:Error: Permission denied (publickey)解决方法

permittion denied错误,其实是暗示你对git服务器的链接被拒绝。一般原因有以下几个:

不要在git 命令前面加上sudo

一般情况下,不要在使用git的时候加上sudo
如果你非要用,在你需要取得一个以root身份登陆的shell的场合下,你可以用su 替代 sudo

确保你访问的server名字是git@github.com

打字的时候难免会发生错误。有可能你不小心把github.com打成了githib.com
下面的命令用来测试你访问的是正确的github:

ssh -vT git@github.com

OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/you/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com [IP ADDRESS] port 22.

上面的输出代表你正在访问github.com

测试连接的时候用git用户

使用这条命令测试会发生错误:
ssh -T GITHUB-USERNAME@github.com
输出如下:

Permission denied (publickey).

正确的测试方式是:
ssh -T git@github.com

Hi username! You’ve successfully authenticated…
上面这样的输出表示认证成功。

确保你正在使用一个ssh key

使用下面的测试步骤来查看你有没有使用ssh key:

  1. 打开ssh-agent:
    eval "$(ssh-agent -s)"

    Agent pid 59566`

  2. 确认是否有ssh key且载入到ssh.
    ssh-add -l #OpenSSH 6.7 or older

    2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

    或者
    ssh-add -l -E md5 # OpenSSH 6.8 or newer

    2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

  3. 如果没有任何输出,表示当前没有在使用的ssh key .你需要去生成一个,并把它添加到github.

更多测试细节

也可以通过这条命令来查看是否有ssh key在使用:
ssh -vT git@github.com


debug1: identity file /Users/you/.ssh/id_rsa type -1
debug1: identity file /Users/you/.ssh/id_rsa-cert type -1
debug1: identity file /Users/you/.ssh/id_dsa type -1
debug1: identity file /Users/you/.ssh/id_dsa-cert type -1

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/you/.ssh/id_rsa
debug1: Trying private key: /Users/you/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

注意到上面的命令中,-1说明找不到ssh key 文件。Trying private key也说明了这个问题。
如果连接正常,输出应该是下面这样:


debug1: identity file /Users/you/.ssh/id_rsa type 1

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/you/.ssh/id_rsa

确保你的ssh key 添加到了你的github账户

通过ssh-add -l查看你当前在使用的ssh key.
然后到github上点击你的用户照片,点击设置, 找到SSH and GPG keys,
就可以看到你添加的ssh key.
将这个key和你在本地用ssh-add -l看到的key 进行对比,确保你的key已经添加到了github。

参考链接:Error: Permission denied (publickey)

### 解决 GitHub 上使用 SSH 时权限被拒绝的问题 当遇到 `Permission denied (publickey)` 错误时,这通常意味着 SSH 公钥未正确添加到 GitHub 或者 SSH 配置存在问题[^1]。以下是详细的解决方案: #### 1. 检查现有 SSH 密钥 首先确认本地是否有已存在的 SSH 密钥。 ```bash ls -al ~/.ssh ``` 如果存在名为 `id_rsa.pub` 的文件,则表示已经有一个密钥对;如果没有,则需要生成新的密钥对。 #### 2. 生成新的 SSH 密钥 对于没有现成密钥的情况,可以通过以下命令创建一个新的 SSH 密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 按照提示操作,默认保存路径为 `~/.ssh/id_rsa` 和 `~/.ssh/id_rsa.pub`。 #### 3. 添加新生成的 SSH 私钥至 ssh-agent 启动 ssh-agent 并加载私钥: ```bash eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa ``` 此步骤确保每次终端重启后都能自动识别并使用该私钥进行身份验证[^4]。 #### 4. 将公钥添加到 GitHub 账户 复制公钥内容,并将其粘贴到 GitHub 设置中的 SSH keys 页面下: ```bash cat ~/.ssh/id_rsa.pub | pbcopy ``` 登录 GitHub 后,在账户设置 -> SSH and GPG keys 中点击 New SSH key 来完成添加过程。 #### 5. 测试连接是否正常工作 最后一步是验证配置是否生效,运行如下命令来测试与服务器之间的通信状态: ```bash ssh -T git@github.com ``` 成功的话应该收到一条欢迎消息而不是之前的权限错误信息[^2]。 通过上述方法能够有效解决大多数情况下发生的 `Permission denied (publickey)` 报错情况。另外需要注意的是,有时也可能是因为环境变量 `SSH_AUTH_SOCK` 设定不正确而导致无法正常使用 ssh-agent 进行认证[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值