Github的SSH KEY配置


生成SSH Key

  • 生成SSH KEY: ssh-keygen -t rsa -C "your_email@example.com" , 然后會(huì)提示輸入公鑰的名字, 如果你需要多個(gè)SSH-KEY(比如有多個(gè)github帳號(hào))就需要在命名的時(shí)候區(qū)分一下,比如輸入"/home/chen/.ssh/xyz_rsa"這樣的名字鄙煤,這樣在/home/chen/.ssh/文件夾下生成兩個(gè)文件: xyz_rsa.pub和xyz_rsa, 分別是你的公鑰和私鑰.

  • 生成SSH KEY的時(shí)候還要求輸入私鑰密碼"│Enter passphrase (empty for no passphrase):"墙杯, 請(qǐng)記住私鑰的密碼匣吊, 下面導(dǎo)入私鑰的時(shí)候要用到匈睁。

  • 將SSH 私鑰增加到ssh-agent: ssh-add ~/.ssh/xyz_rsa桶蛔, 這里會(huì)提示輸入一次私鑰的密碼;

  • 查看已經(jīng)add的SSH KEY: ssh-add -l吸祟;

  • 安裝xclip(終端到剪切板的工具): sudo yum install xclip , 將公鑰內(nèi)容拷貝到剪切板: xclip -sel clip < ~/.ssh/id_rsa.pub ;

  • 瀏覽器登錄自己的github頁面, 進(jìn)入"Account Settings", 再點(diǎn)擊左邊的"SSH Key"可以看到自己上傳過的SSH公鑰列表. 再點(diǎn)擊"Add SSH Key"新增一個(gè)公鑰, 直接粘貼即可(上一步已經(jīng)使用xclip把公鑰id_rsa.pub復(fù)制到剪切板了)瑟慈;

測試SSH Key登錄

  • 打開終端, 測試: ssh -T git@github.com;
    你可能會(huì)看到下面的錯(cuò)誤信息:

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

上面的錯(cuò)誤在某些Linux發(fā)行版(比如我的Fedora 17)是一個(gè)已知的錯(cuò)誤, 可以忽略屋匕。
然后會(huì)看到打印出公鑰的指紋葛碧,請(qǐng)確認(rèn)此指紋和你公鑰的一致,然后輸入"yes"確認(rèn)过吻。

" Hi your_name! You've successfully authenticated, but GitHub does not provide shell access."

如果your_name正確顯示你的ID进泼,則說明成功設(shè)置了SSH公鑰.

一臺(tái)機(jī)器上管理多個(gè)Github帳號(hào)的SSH Key

如果你在一臺(tái)機(jī)器使用兩個(gè)github賬號(hào)(比如私人賬號(hào)abc和工作賬號(hào)xyz),兩個(gè)帳號(hào)用不同的SSH KEY,還需要編輯一下配置文件~/.ssh/config:

Host personal.github.com  
    HostName github.com  
    User git  
    IdentityFile ~/.ssh/personal_rsa  
    
Host work.github.com  
    HostName github.com  
    User git  
    IdentityFile ~/.ssh/work_rsa  

解釋此配置文件:

  • Host: "personal.github.com"是一個(gè)"別名"乳绕,可以隨意命名, 像github-PERSONAL這樣的命名也可以绞惦;
  • HostName:比如我工作的git倉儲(chǔ)地址是git@code.sohuno.com:username/repo_name.git, 那么我的HostName就要填"sohuno.com";
  • IdentityFile: 所使用的公鑰文件;

配置完畢洋措,用下面的命令測試一下:

ssh -T git@personal.github.com
ssh -T git@work.github.com
# 注: @符號(hào)后面的"personal.github.com"就是在~/.ssh/config文件中指定的"Host"項(xiàng)

(1)為已經(jīng)檢出的repos指定github賬號(hào):

在已經(jīng)檢出的repos目錄下執(zhí)行:

git config  user.name "your-id"
git config  user.email "your-id@gmail.com"

修改.git/config并找到[remote "origin"],修改url的值為:

[remote "origin"]   
    url = git@personal.github.com:user_name/repos_name.git  

其中, personal.github.com就是在配置文件~/.ssh/config中的Host項(xiàng), 設(shè)置完成后, 在這個(gè)工程目錄git push會(huì)自動(dòng)以此git帳號(hào)提交代碼翩隧。

(2)使用指定賬號(hào)clone已存在的repos:

  1. 使用指定賬號(hào)clone一個(gè)已經(jīng)存在的repos:
    git clone git@personal.github.com:user_name/repos_name.git, 上面命令中的"personal.github.com"就是在~/.ssh/config文件中指定的"Host"項(xiàng), "user_name"是指定提交代碼的賬戶名, 例如:

git clone git@personal.github.com:whatsdjgpp/Vimrc.git
Cloning into 'Vimrc'...

  1. 然后還需要config一下user.name和user.email, 進(jìn)入repos目錄執(zhí)行:
git config user.name your_name
git config user.email your_email

以后在此repos下git push origin master就是使用指定的用戶push.

(3)使用指定賬號(hào)init新的repos:

如果是新建一個(gè)倉儲(chǔ):在github.com創(chuàng)建一個(gè)新repos,

$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin git@personal.github.com:user_name/testing.git
$ git push -u origin master

上面命令第4行: "personal.github.com"就是在~/.ssh/config文件中指定的"Host"項(xiàng), "user_name"是指定提交代碼的賬戶名.

參考:

《Quick Tip: How to Work with GitHub and Multiple Accounts》
《Multiple SSH Keys settings for different github account》
《多個(gè)github帳號(hào)的SSH key切換》
《GitHub: Generating SSH Keys》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呻纹,一起剝皮案震驚了整個(gè)濱河市堆生,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌雷酪,老刑警劉巖淑仆,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哥力,居然都是意外死亡蔗怠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門吩跋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寞射,“玉大人,你說我怎么就攤上這事锌钮∏盼拢” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵梁丘,是天一觀的道長侵浸。 經(jīng)常有香客問我,道長氛谜,這世上最難降的妖魔是什么掏觉? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮值漫,結(jié)果婚禮上澳腹,老公的妹妹穿的比我還像新娘。我一直安慰自己杨何,他們只是感情好酱塔,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晚吞,像睡著了一般延旧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上槽地,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼捌蚊。 笑死集畅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缅糟。 我是一名探鬼主播挺智,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼窗宦!你這毒婦竟也來了赦颇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤赴涵,失蹤者是張志新(化名)和其女友劉穎媒怯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體髓窜,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扇苞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寄纵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鳖敷。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖程拭,靈堂內(nèi)的尸體忽然破棺而出定踱,到底是詐尸還是另有隱情,我是刑警寧澤恃鞋,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布屋吨,位于F島的核電站,受9級(jí)特大地震影響山宾,放射性物質(zhì)發(fā)生泄漏至扰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一资锰、第九天 我趴在偏房一處隱蔽的房頂上張望敢课。 院中可真熱鬧,春花似錦绷杜、人聲如沸直秆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽圾结。三九已至,卻和暖如春齿诉,著一層夾襖步出監(jiān)牢的瞬間筝野,已是汗流浹背晌姚。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歇竟,地道東北人挥唠。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像焕议,于是被迫代替她去往敵國和親宝磨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容