github提示Permission denied (publickey),如何才能解決?

連接github時,公鑰出現問題。執行 ssh -vT git@github.com後出現如下顯示:

OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: /etc/ssh/ssh_config line 19: Applying options for *

debug1: Connecting to http://github.com [204.232.175.90] port 22.

debug1: Connection established.

debug1: identity file /home/chengsh/.ssh/id_rsa type 1

debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048

debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048

debug1: identity file /home/chengsh/.ssh/id_rsa-cert type -1

debug1: identity file /home/chengsh/.ssh/id_dsa type -1

debug1: identity file /home/chengsh/.ssh/id_dsa-cert type -1

debug1: identity file /home/chengsh/.ssh/id_ecdsa type -1

debug1: identity file /home/chengsh/.ssh/id_ecdsa-cert type -1

debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze1+github12

debug1: match: OpenSSH_5.5p1 Debian-6+squeeze1+github12 pat OpenSSH*

debug1: Enabling compatibility mode for protocol 2.0

debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1

debug1: SSH2_MSG_KEXINIT sent

debug1: SSH2_MSG_KEXINIT received

debug1: kex: server-&>client aes128-ctr hmac-md5 none

debug1: kex: client-&>server aes128-ctr hmac-md5 none

debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024&<1024&<8192) sent

debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP

debug1: SSH2_MSG_KEX_DH_GEX_INIT sent

debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY

debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

debug1: Host "github.com" is known and matches the RSA host key.

debug1: Found key in /home/chengsh/.ssh/known_hosts:1

debug1: ssh_rsa_verify: signature correct

debug1: SSH2_MSG_NEWKEYS sent

debug1: expecting SSH2_MSG_NEWKEYS

debug1: SSH2_MSG_NEWKEYS received

debug1: Roaming not allowed by server

debug1: SSH2_MSG_SERVICE_REQUEST sent

debug1: SSH2_MSG_SERVICE_ACCEPT received

debug1: Authentications that can continue: publickey

debug1: Next authentication method: publickey

debug1: Offering RSA public key: /home/chengsh/.ssh/id_rsa

debug1: Server accepts key: pkalg ssh-rsa blen 279

Agent admitted failure to sign using the key.

debug1: Trying private key: /home/chengsh/.ssh/id_dsa

debug1: Trying private key: /home/chengsh/.ssh/id_ecdsa

debug1: No more authentication methods to try.

Permission denied (publickey).


極大多數情況是由於github賬號沒有設置ssh公鑰信息所致。 前往 GitHub 網站的"account settings"

依次點擊"Setting -&> SSH Keys"-&>"New SSH key"

Title處填寫「id_rsa.pub」或其他任意信息。 key處原樣拷貝下面命令的列印 `~/.ssh/id_rsa.pub` 文件的內容:

```

cat ~/.ssh/id_rsa.pub

```

如沒有則按下述方法生成:

ssh-keygen -t rsa

一路回車......

最後,輸入「ssh -T git@github.com」確認OK即可。

再嘗試輸出就應該有了

```

cat ~/.ssh/id_rsa.pub

```


另外我自己遇到的一個情況是,我也不知道為什麼,我的sshkey沒有被放進我的系統里。

於是:ssh-add ~/.ssh/xxxxx之後(xxxxx請替換成自己sshkey的文件名),就解決了~


如果你曾經出現過這種問題,我有一個解決方案

首先,清除所有的key-pair

ssh-add -D

rm -r ~/.ssh

刪除你在github中的public-key

重新生成ssh密鑰對

ssh-keygen -t rsa -C "xxx@xxx.com"

chmod 0700 ~/.ssh

chmod 0600 ~/.ssh/id_rsa*

接下來正常操作

在github上添加公鑰public-key:

1、首先在你的終端運行 xclip -sel c ~/.ssh/id_rsa.pub將公鑰內容複製到剪切板

2、在github上添加公鑰時,直接複製即可

3、保存

測試:

在終端 ssh -T git@github.com

成功即可,不成功?我也沒辦法了,哈哈


我這個問題已經解決了,首先要感謝前面幾樓的指點,我是之前建了一個key,然後默認名字為id_rsa.pub,我每次重新建完之後我又去複製這個key,所以導致不正確,根據提示生成了一個.ssh的文件夾,我並沒有找到,所以我就去終端進入這個文件夾,沒想到真進去了

cd ~/.ssh

vim id_rsa.pub

這樣就會看見重新生成的那個key了,我之所以會出現Permission denied (publickey) 是因為我每次重新複製的key都是第一個那個錯誤的key,這樣在終端進入id_rsa.pub再複製就可以了。


這個問題看來都好早了。。。我今天開始在電腦上配置github也遇到相同的問題了,最上面第一行的identify 能夠識別本地的sshkey,所以後面接著"1",然後下面已經offering RSA public key了,但是仍然denied。。。。

看了官方的文檔搜了很多解決方法。windows沒有ssh_config文件不能改所謂的路徑;更多的人說是sshkey複製過程有問題,我試過直接粘貼和用clip都是一樣的,從頭試過好幾遍。。。

我現在再用虛擬機Ubuntu試試看看到底是什麼問題。。。

題主是早就解決的話,還請賜教!謝謝!


總覺得這樣的問題,在知乎提問的時間,完全在其他地方找到.比如Google!


Error: Permission denied (publickey)

官方文檔


主要沒有設置公鑰,可以再項目裡面和用戶個人資料裡面設置,只是許可權不同。

下面在用戶個人資料裡面的設置ssh公鑰

標題設置為 id_rsa.pub
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
會在/c/Users/Administrator/.ssh/生成三個文件
複製id_rsa.pub文件裡面的內容到用戶個人資料裡面的公鑰,
$ ssh -T git@git.oschina.net
出現 Welcome to Git@OSC, yourname!就可以pull和push啦

貼上碼雲平台幫助文檔_V1.2


推薦閱讀:

為什麼 macOS 安裝 dmg 可以一拖了事,而 Windows 下大部分軟體必須要啟動安裝程序?
為什麼說Mac os相比Windows方便?
Linux 和 OS X 病毒很少真的只是因為使用人數較少的緣故嗎?
如何批量恢復 Mac OS X 廢紙簍里的文件?
Mac如何打開身份不明開發者的程序?

TAG:macOS | Git | GitHub | 終端命令 |