Github上SSH key 的使用與管理

SSH 為 Secure Shell 的縮寫,是相對(duì)FTP色冀、POP和Telnet等明文傳輸數(shù)據(jù)來講較為安全的一種協(xié)議。SSH傳輸?shù)臄?shù)據(jù)是經(jīng)過壓縮處理后的偷线,傳輸速度快,從客戶端來看沽甥,SSH提供兩種級(jí)別的安全驗(yàn)證声邦,第一種級(jí)別(基于口令的安全驗(yàn)證)第二種級(jí)別(基于密匙的安全驗(yàn)證)摆舟。Github亥曹、Gitlab及Bitbuckut等代碼托管平臺(tái)都支持基于密匙的SSH來進(jìn)行遠(yuǎn)程代碼管理,下面以Github為例具體說下ssh key的創(chuàng)建與使用盏檐。

1歇式,SSH key的生成

abc@163.com 為Github的登錄郵箱,通過以下命令即可創(chuàng)建一對(duì)公私鑰 (公鑰文件:~/.ssh/id_rsa.pub胡野; 私鑰文件:~/.ssh/id_rsa):

ssh-keygen -t rsa -C "abc@163.com"

然后會(huì)提示本地ssh key的保存路徑材失,如果是單個(gè)創(chuàng)建,回車即可報(bào)錯(cuò)默認(rèn)/Users/用戶名/.ssh目錄下硫豆。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/pandora/.ssh/id_rsa):   

接下來會(huì)提示是否需要帳號(hào)密碼龙巨,可以為空,也可以任意指定(首次連接ssh是則會(huì)提示輸入此密碼)熊响。

Enter passphrase (empty for no passphrase):

至此旨别,ssh key創(chuàng)建完畢。接下來只需將生成的ssh key保存至github即可汗茄,查看ssh key命令:

cat ~/.ssh/id_rsa.pub

顯示結(jié)果為:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCohNI1KuNzVP7UlclbueAp/2Gxhbm0romfChDaqvF3dlMS0SS1HH1HQivG7G2J+hXwhV+V11x3LRKfyIkZy0iq6cccn4+Yan3zdWI12CfhzuHuVOQ7I2nLeDDF/CwqGrY/81r9HQpMNsPfnAHsoAT44M0QcTQORlapJYKIfz4LBT0ZXtGMnm8UeNR3t3RUL0RUZrBjgaeZIuihZjsxfpT3awOsLeTFJDld4Nv2ldw3sADQry0gT912r1IVBvpdmJ8SmQWDvjMggldhzHJoVq3ACM5jK+MSeVAUe11B3WlHDXaUIbHNyRhM+PyQ1FRgckVhz4NwJwPYSWJ5Zalm3GFl abc@163.com

bcopy命令將生成的公鑰拷貝至剪切板:

pbcopy < ~/.ssh/id_rsa.pub

最后秸弛,打開github,找到設(shè)置頁洪碳,在SSH keys中添加即可递览。

2,鏈接測(cè)試SSH key

運(yùn)行ssh -T命令即可測(cè)試ssh key是否鏈接成功:

ssh -T git@github.com

如成功瞳腌,則提示:Hi user_abc! You've successfully authenticated, but GitHub does not provide shell access. user_abc就是該郵箱在Github注冊(cè)的用戶名绞铃。

如果測(cè)試連接不成功,可使用ssh -vT git@github.com命令查看詳細(xì)輸出嫂侍,便于跟蹤問題儿捧,執(zhí)行結(jié)果如下:

OpenSSH_6.9p1, LibreSSL 2.1.8
debug1: Reading configuration data /Users/pandora/.ssh/config
debug1: /Users/pandora/.ssh/config line 2: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: identity file /Users/pandora/.ssh/id_rsa_dama2716588 type 1
debug1: key_load_public: No such file or directory
debug1: identity file /Users/pandora/.ssh/id_rsa_dama2716588-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.9
debug1: Remote protocol version 2.0, remote software version libssh-0.7.0
debug1: no match: libssh-0.7.0
debug1: Authenticating to github.com:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client chacha20-poly1305@openssh.com <implicit> none
debug1: kex: client->server chacha20-poly1305@openssh.com <implicit> none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/pandora/.ssh/known_hosts:1
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: /Users/pandora/.ssh/id_rsa_dama2716588
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([192.30.252.129]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_CTYPE = UTF-8
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
Hi dama2716588! You've successfully authenticated, but GitHub does not provide shell access.
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 3244, received 1776 bytes, in 2.0 seconds
Bytes per second: sent 1650.3, received 903.5
debug1: Exit status 1

3,配置管理SSH key

當(dāng)本地存儲(chǔ)使用多個(gè)ssh key時(shí)挑宠,需要通過config文件(/Users/用戶名/.ssh/config)來切換默認(rèn)賬戶菲盾,ssh config文件常用配置如下:

# Default github user(dama2716588@126.com)  默認(rèn)配置,一般可以省略
Host github.com
Hostname github.com
User git
Identityfile ~/.ssh/id_rsa_dama2716588

# 2 user(dama2716588@163.com)
Host github.com
HostName github.com
User git
Identityfile ~/.ssh/id_rsa_pandorago

# 3 user(adc@baidu.com)
gitlab.com 對(duì)應(yīng)配置 
Host gitlab.com
HostName gitlab.com
User mayulong01
Identityfile ~/.ssh/id_rsa_gitlab_abc

Host: "personal.github.com"是一個(gè)"別名"痹栖,可以隨意命名, 像github-PERSONAL這樣的命名也可以亿汞;

HostName:比如我工作的git倉儲(chǔ)地址是ssh://g@gitlab.baidu.com/abc.git, 那么我的HostName就要填"baidu.com";

IdentityFile: 所使用的公鑰文件;

參考鏈接:

https://help.github.com/articles/generating-ssh-keys/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末揪阿,一起剝皮案震驚了整個(gè)濱河市疗我,隨后出現(xiàn)的幾起案子咆畏,更是在濱河造成了極大的恐慌,老刑警劉巖吴裤,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旧找,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡麦牺,警方通過查閱死者的電腦和手機(jī)钮蛛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剖膳,“玉大人魏颓,你說我怎么就攤上這事≈ㄉ梗” “怎么了甸饱?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仑濒。 經(jīng)常有香客問我叹话,道長,這世上最難降的妖魔是什么墩瞳? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任驼壶,我火速辦了婚禮,結(jié)果婚禮上喉酌,老公的妹妹穿的比我還像新娘热凹。我一直安慰自己,他們只是感情好泪电,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布碌嘀。 她就那樣靜靜地躺著,像睡著了一般歪架。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上霹陡,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天和蚪,我揣著相機(jī)與錄音,去河邊找鬼烹棉。 笑死攒霹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的浆洗。 我是一名探鬼主播催束,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼伏社!你這毒婦竟也來了抠刺?” 一聲冷哼從身側(cè)響起塔淤,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎速妖,沒想到半個(gè)月后高蜂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡罕容,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年备恤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锦秒。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡露泊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旅择,到底是詐尸還是另有隱情惭笑,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布砌左,位于F島的核電站脖咐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏汇歹。R本人自食惡果不足惜屁擅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望产弹。 院中可真熱鬧派歌,春花似錦、人聲如沸痰哨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斤斧。三九已至早抠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間撬讽,已是汗流浹背蕊连。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留游昼,地道東北人甘苍。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像烘豌,于是被迫代替她去往敵國和親载庭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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