Mac下Github的SSH公鑰生成記錄

前言:

自己作死下載了多個(gè)破解軟件,不知道那個(gè)可能程序有問題,導(dǎo)致了電腦重啟后無(wú)法開機(jī),苦逼的只能重裝系統(tǒng),所以之前的所有配置都需要重新弄。所以破解軟件請(qǐng)謹(jǐn)慎安裝。

Git安裝

直接下載安裝 Xcode,高版本Xcode已經(jīng)默認(rèn)集成了Git 。

生成SSH key

SSH key提供了一種與GitHub通信的方式,通過這種方式,能夠在不輸入密碼的情況下,將GitHub作為自己的remote端服務(wù)器,可以實(shí)現(xiàn)本地 Git 倉(cāng)庫(kù)和 GitHub 倉(cāng)庫(kù)之間的數(shù)據(jù)傳輸,方便進(jìn)行版本控制。

大多數(shù) Git 服務(wù)器都會(huì)選擇使用 SSH 公鑰來(lái)進(jìn)行授權(quán)。系統(tǒng)中的每個(gè)用戶都必須提供一個(gè)公鑰用于授權(quán),沒有的話就要生成一個(gè)。

步驟:

  • 首先先確認(rèn)一下是否已經(jīng)有一個(gè)公鑰了。SSH 公鑰默認(rèn)儲(chǔ)存在賬戶的主目錄下的 ~/.ssh 目錄。進(jìn)去看看:
$ cd ~/.ssh
$ ls
 id_dsa       known_hosts
 id_dsa.pub     config   
  • 關(guān)鍵是看有沒有用 something 和 something.pub 來(lái)命名的一對(duì)文件,這個(gè) something 通常就是 id_dsa 或 id_rsa。有 .pub 后綴的文件就是公鑰,另一個(gè)文件則是密鑰。如果已經(jīng)有了,可直接跳到打開id_rsa.pub,然后copy到GitHub。如果沒有,打開終端(Shell) ,創(chuàng)建 SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/schacon/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/schacon/.ssh/id_rsa.
Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
43:c5:5b:5f:b1:f1:50:43:ad:20:a6:92:6a:1f:9a:3a schacon@agadorlaptop.local

??注意它先要求你確認(rèn)保存公鑰的位置(.ssh/id_rsa),然后它會(huì)讓你重復(fù)一個(gè)密碼兩次,如果不想在使用公鑰的時(shí)候輸入密碼,可以留空或直接一路回車確定下就安裝好了。查看是否成功:

$ cd ~/.ssh
$ ls
id_rsa
id_rsa.pub
  • 打開 id_rsa.pub文件,里面就有需要的ssh key。
    在終端輸入命令打開id_rsa.pub,然后copy。
vim ~/.ssh/id_rsa.pub

$ cat ~/.ssh/id_rsa.pub
拷貝公鑰

另注:所有做過這一步的用戶都得把它們的公鑰給你或者 Git 服務(wù)器的管理員(假設(shè) SSH 服務(wù)被設(shè)定為使用公鑰機(jī)制)。他們只需要復(fù)制 .pub 文件的內(nèi)容然后發(fā)郵件給管理員。

將SSH Key添加到GitHub中

登陸 GitHub,打開“SSH and GPG Keys”頁(yè)面:


將SSH Key添加到GitHub中

最后測(cè)試github是否連接成功

$ssh -T git@github.com
如果顯示:
Are you sure you want to continue connecting (yes/no)?  ##輸入yes##
接下來(lái)如果正常的話,會(huì)出現(xiàn)如下提示:
Hi ZyjEugene! You've successfully authenticated, but GitHub does not
provide shell access. 
如果出現(xiàn)如下提示,則說明有權(quán)限問題:
Permission denied (publickey)....
如果有權(quán)限問題的情況下,你對(duì)項(xiàng)目執(zhí)行push操作的時(shí)候,會(huì)得到如下提示:
Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

>Please make sure you have the correct access rights
and the repository exists.

權(quán)限問題:

原因:生成了多套git ssh密鑰,并且都Github和客戶端連接。通常一臺(tái)電腦生成一個(gè)ssh不會(huì)有這個(gè)問題,當(dāng)一臺(tái)電腦生成多個(gè)ssh的時(shí)候,就可能遇到這個(gè)問題。
解決步驟如下
1、查看系統(tǒng)ssh-key代理, 執(zhí)行如下命令

$ ssh-add -l

以上命令如果輸出 The agent has no identities. 則表示沒有代理。如果系統(tǒng)有代理,可以執(zhí)行下面的命令清除代理:

$ ssh-add -D

2、然后將你新創(chuàng)建的ssh添加代理,執(zhí)行命令如下:

$ ssh-add ~/.ssh/id_rsa 

注:id_rsa你的公私鑰名稱

3、你會(huì)得到如下提示:

2048 8e:71:ad:88:78:80:b2:d9:e1:2d:1d:e4:be:6b:db:8e /Users/Eugene/.ssh/id_rsa (RSA)

4、測(cè)試 ssh

ssh -T git@github.com

你若得到如下提示,表示這個(gè)ssh公鑰已經(jīng)獲得了權(quán)限

Hi ZyjEugene! You've successfully authenticated, but github does not provide shell access.

問題到此解決。


結(jié)束

鳴謝:
Pro Git 簡(jiǎn)體中文版
廖雪峰Git教程

鏈接與資源:
猴子都能懂的Git教程
Git - 簡(jiǎn)明指南

最后歡迎留言指正,謝謝??!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評(píng)論 19 139
  • Git的使用 首先登錄https://git.oschina.net,如沒有賬號(hào)進(jìn)行注冊(cè). Git簡(jiǎn)單介紹 Git...
    Sunney閱讀 748評(píng)論 0 2
  • 一、檢查SSH key是否存在 在終端輸入: ls -al ~/.ssh 如果沒有,終端顯示如下: No such...
    JackieWillen閱讀 1,610評(píng)論 0 0
  • ssh公鑰登錄 一般在管理遠(yuǎn)程主機(jī)時(shí),都用ssh登錄,ssh user@host,但是這樣每次會(huì)使用密碼。 使用s...
    沉默寡言若有所思閱讀 11,635評(píng)論 0 6
  • 一. angularjs概述 angularjs誕生于2009年,由Misko Hevery等人創(chuàng)建,后為Goog...
    元遲1閱讀 361評(píng)論 0 0

友情鏈接更多精彩內(nèi)容