Mac 查看 SSH key

SSH(Secure Shell)是一種網(wǎng)絡(luò)協(xié)議,即非常安全的shell,主要用于計算機間加密傳輸休雌。SSH的主要目的是用來取代傳統(tǒng)的 telnet 和 R 系列命令(rlogin、rsh、rexec 等)遠(yuǎn)程登錄和遠(yuǎn)程執(zhí)行命令的工具要销,實現(xiàn)對遠(yuǎn)程登錄和遠(yuǎn)程執(zhí)行命令加密,防止網(wǎng)絡(luò)監(jiān)聽導(dǎo)致密碼泄露的問發(fā)生夏块。

1. 查看 Mac 上的 SSH key

最近在本地Git服務(wù)器上創(chuàng)建工程后疏咐,網(wǎng)頁上提示:需要在其上添加client主機的SSH key,才能正常推拉代碼脐供。我用的是Mac浑塞,那怎樣才能查看本機的SSH key呢?

打開終端政己,在終端中分別輸入如下命令:

$ cd .ssh/
$ ls -al

紅框中的文件酌壕,就存儲著 SSH key:

讀取文件內(nèi)容,顯示在控制臺上歇由,其中卵牍,以ssh-rsa... 開頭完整字的符串就是的SSH key。

$ cat id_rsa.pub 

2. 與SSH 相關(guān)的概念

2.1 加密

加密是將一段數(shù)據(jù)處理之后沦泌,輸出為一段外人無法或者很難破譯的數(shù)據(jù)糊昙,只有指定的人可以解密。 一般來說谢谦,加密過程會有一個key释牺,這個key作為加密的參數(shù), 解密時也會用一個相關(guān)聯(lián)的key作為輸入回挽。粗略來說是下面的流程:

加密方:encrypted_data = encrypt(raw_data, key)
解密方:raw_data = decrypt(encrypted_data, key1)

主流加密算法一般分為兩類:

  • 對稱加密(私鑰加密)

對稱加密就是加密方和解密方用的都是同一個key没咙,這個key對于加密方和解密方來說是保密的,是不能讓第三方知道的千劈。第三方不知道私鑰時镜撩,是很難將加密的數(shù)據(jù)解密的。一般來說是加密方先產(chǎn)生私鑰,然后通過一個安全的途徑來告知解密方這個私鑰袁梗。

  • 非對稱加密(公鑰加密)

非對稱加密需要解密的一方首先生成一對密鑰宜鸯,一個私鑰(private key)一個公鑰(public key),私鑰留在本地不能泄露出去遮怜,而公鑰則可以任意對外發(fā)布淋袖。用公鑰進行加密獲得的數(shù)據(jù),只能用私鑰才能解密锯梁。加密方首先從解密方獲取公鑰即碗,然后利用這個公鑰進行加密,把加密后的數(shù)據(jù)發(fā)送給解密方陌凳,解密方利用私鑰進行解密剥懒。如果加密的數(shù)據(jù)在傳輸過程中被第三方截獲,因為其沒有私鑰合敦,也是沒有辦法進行解密的初橘。

注意:
公鑰加密的問題還包括獲取了公鑰之后,加密方如何保證公鑰來自于確定的一方充岛,而不是某個冒充的機器保檐,這也就涉及到了公鑰加密里面比較重要的一步 —— 身份驗證
一般崔梗,對稱加密都會比非對稱加密效率高夜只,所以大數(shù)據(jù)量的加密一般都會使用對稱加密,而非對稱加密會作為身份驗證和交換私鑰的一個手段蒜魄。

2.2 數(shù)據(jù)的一致性(完整性)

數(shù)據(jù)的一致性是指如何保證一段數(shù)據(jù)在傳輸?shù)倪^程中沒有被遺漏扔亥、破壞或者修改過。目前普遍的做法是對數(shù)據(jù)計算hash值(摘要算法)谈为,得到的hash值和數(shù)據(jù)一起傳輸砸王,然后在收到數(shù)據(jù)的時候也對數(shù)據(jù)進行hash,將得到的hash值和傳輸過來的hash值進行比對峦阁,如果一樣,則說明收到的數(shù)據(jù)是完整的耘成,否則榔昔,是被修改過的。

目前流行的hash算法有MD5瘪菌、SHA-1算法撒会。

2.3 身份驗證

身份驗證是指判斷一個人或者機器是不是由第三方冒充的(類似于https抓包中的代理)。在SSH里面师妙,這個過程主要是通過公鑰來完成的诵肛,服務(wù)器會維護一個公鑰列表,保存的是它信任的機器上面的公鑰默穴,在進行SSH連接時怔檩,客戶端送過來一個公鑰褪秀,然后服務(wù)器就會在列表中進行查找,如果這個公鑰在列表中存在薛训,就說明這個客戶端是允許進行連接的媒吗。

此處有個問題,那公鑰會不會被截獲乙埃?闸英??

3. SSH 的工作原理

SSH的機制大體是介袜,本地客戶端發(fā)送一個連接請求到遠(yuǎn)程的服務(wù)端甫何,服務(wù)端檢查申請的包和IP地址再發(fā)送密鑰給SSH客戶端,本地客戶端再將密鑰發(fā)回給服務(wù)端遇伞,到此為止辙喂,連接建立。服務(wù)端啟動SSH服務(wù)器后赃额,sshd進程運行并在默認(rèn)的22端口進行監(jiān)聽加派。

SSH機制中安全驗證方式包括,基于口令的安全驗證(賬號密碼)和基于公鑰鑰的安全驗證:

  • 密碼認(rèn)證缺點

    1. 密碼容易被破解跳芳;
    2. 用戶無法空密碼登錄芍锦;
    3. 多個人登錄同一賬戶時,需所有用戶都知道密碼飞盆,并且容易泄露娄琉,修改密碼極不便。
  • 公鑰認(rèn)證

    1. 允許空密碼登錄吓歇;
    2. 公鑰孽水,任何人都能看到,用戶加密城看;
    3. 私鑰女气,只有擁有者看到,用于解密测柠;
    4. 多人登錄同一賬戶時炼鞠,可通過各自的公鑰登錄到系統(tǒng)的;
    5. 通過公鑰加密的的密文使用私鑰輕松解密轰胁,但根據(jù)公鑰來猜測私鑰十分困難谒主。
3.1 基于公鑰的認(rèn)證過程

本地生成一對密鑰,并把公鑰放到需要訪問的服務(wù)器上赃阀。如果需要連接到SSH服務(wù)器上霎肯,客戶端軟件就會向服務(wù)器發(fā)送請求,請求用本地的密鑰進行安全驗證,服務(wù)器收到請求后观游,先在該服務(wù)器上的主目錄下尋找客戶端的公鑰搂捧,然后把它和客戶端發(fā)來的公鑰進行比較。如果一致备典,服務(wù)器就用這個公鑰加密“質(zhì)詢”(challenge)并把它發(fā)送給客戶端軟件异旧,客戶端本地接收到“質(zhì)詢”之后,就可用本地的私鑰解密再把它發(fā)給服務(wù)器提佣,即建立連接吮蛹。

SSH 的公鑰認(rèn)證利用了非對稱加密的特性。服務(wù)器和客戶端都各自擁有自己的公鑰和密鑰拌屏,如下:

Ac 客戶端公鑰
Bc 客戶端私鑰
As 服務(wù)器公鑰
Bs 服務(wù)器私鑰

在認(rèn)證之前潮针,客戶端需要通過某種方法將公鑰 Ac 登錄到服務(wù)器上。認(rèn)證過程分為兩個步驟:

1. 會話密鑰(session key)生成
1)客戶端請求連接服務(wù)器倚喂,服務(wù)器將 As 發(fā)送給客戶端每篷;
2)服務(wù)器生成會話ID(session id),設(shè)為 p端圈,發(fā)送給客戶端焦读;
3)客戶端生成會話密鑰(session key),設(shè)為 q舱权,并計算 r = p xor q矗晃;
4)客戶端將 r 用 As 進行加密,結(jié)果發(fā)送給服務(wù)器宴倍;
5)服務(wù)器用 Bs 進行解密张症,獲得 r;
6)服務(wù)器進行 r xor p 的運算鸵贬,獲得 q俗他;
7)至此服務(wù)器和客戶端都知道了會話密鑰q,以后的傳輸都將被 q 加密阔逼。

2. 認(rèn)證
1)服務(wù)器生成隨機數(shù) x兆衅,并用 Ac 加密后生成結(jié)果 S(x),發(fā)送給客戶端嗜浮;
2)客戶端使用 Bc 解密 S(x) 得到 x羡亩;
3)客戶端計算 q + x 的 md5 值 n(q+x),q為上一步得到的會話密鑰周伦;
4)服務(wù)器計算 q + x 的 md5 值 m(q+x);
5)客戶端將 n(q+x) 發(fā)送給服務(wù)器未荒;
6)服務(wù)器比較 m(q+x) 和 n(q+x)专挪,兩者相同則認(rèn)證成功。

3.2 基于公鑰的加密過程

A和B,A想把一段明文通過雙密鑰加密后發(fā)送給B寨腔,B有一對公鑰和私鑰速侈,加密解密過程:

  1. B將公鑰發(fā)送給A
  2. A用B的公鑰加密自己要發(fā)送的明文消息,然后傳送給B
  3. B用自己私鑰解密A的消息

基于公開密鑰的認(rèn)證過程:

身份認(rèn)證和加密不同迫卢,只要身份認(rèn)證倚搬,鑒別用戶真?zhèn)巍?br> 只要鑒別用戶的私鑰是正確的,就可以鑒別身份真?zhèn)巍?/p>

A和B兩個用戶乾蛤,A想讓B知道自己是真實的A每界,不是假冒的,因此身份認(rèn)證過程:

  1. A用自己的私鑰對文件加密家卖,從而對文件簽名,并將簽名文件發(fā)送給B
  2. B用A的公鑰解密文件眨层,從而驗證簽名,完成身份認(rèn)證過程

再是文件加密解密過程:同上(需完成兩次驗證)

4. SSH 建連過程抓包

主要包括以下步驟:

  • TCP 三次握手
  • SSH 協(xié)議版本協(xié)商
  • 客戶端與服務(wù)端的公鑰交換
  • 加密算法協(xié)商
  • 客戶端使用對稱加密的密鑰認(rèn)證
  • 客戶端與服務(wù)端安全通信

我使用 wireshark 抓包并查看了一下其 SSH 的建連過程上荡,如下:

ssh作為工具是分為服務(wù)端和客戶端的趴樱,在服務(wù)端它是 sshd,一般占用 22 端口酪捡。我們平常使用的是其客戶端叁征,一般用法為 ssh user@host,然后根據(jù) ssh 的提示逛薇,我們輸入密碼后登陸到服務(wù)器捺疼。

參考文章:
http://www.voidcn.com/article/p-ppggwxwc-or.html
https://www.it610.com/article/3352318.htm

SSH公鑰、私鑰的基本概念
SSH簡介及公鑰金刁、私鑰的基本概念
SSH 的公鑰與私鑰
數(shù)字證書帅涂、公鑰、私鑰概念
公鑰尤蛮、私鑰媳友、證書的基本概念和使用
轉(zhuǎn)載 公鑰、私鑰产捞、證書的基本概念和使用
SSH 公鑰私鑰認(rèn)證
公鑰醇锚,私鑰和數(shù)字證書基本概念
公鑰私鑰
公鑰/私鑰

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市坯临,隨后出現(xiàn)的幾起案子焊唬,更是在濱河造成了極大的恐慌,老刑警劉巖看靠,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赶促,死亡現(xiàn)場離奇詭異,居然都是意外死亡挟炬,警方通過查閱死者的電腦和手機鸥滨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門嗦哆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人婿滓,你說我怎么就攤上這事老速。” “怎么了凸主?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵橘券,是天一觀的道長。 經(jīng)常有香客問我卿吐,道長旁舰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任但两,我火速辦了婚禮鬓梅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谨湘。我一直安慰自己绽快,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布紧阔。 她就那樣靜靜地躺著坊罢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪擅耽。 梳的紋絲不亂的頭發(fā)上活孩,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機與錄音乖仇,去河邊找鬼憾儒。 笑死,一個胖子當(dāng)著我的面吹牛乃沙,可吹牛的內(nèi)容都是我干的起趾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼警儒,長吁一口氣:“原來是場噩夢啊……” “哼训裆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蜀铲,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤边琉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后记劝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體变姨,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年厌丑,在試婚紗的時候發(fā)現(xiàn)自己被綠了定欧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片别伏。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖忧额,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情愧口,我是刑警寧澤睦番,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站耍属,受9級特大地震影響托嚣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜厚骗,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一示启、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧领舰,春花似錦夫嗓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锉桑,卻和暖如春排霉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背民轴。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工攻柠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人后裸。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓瑰钮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親轻抱。 傳聞我的和親對象是個殘疾皇子飞涂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

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