OSX: SSH密鑰使用日記(1) 大家都知道,一個悠久的曆史故事,使用SSH金鑰組就可以不用密碼登陸遠端電腦。經典資料也是不少,不過那些資料對新學者可是有點太不象人話了,不好理解。所以本文試圖用更人性一點的語言解釋,並示範如何在Mac之間實現。 不得已,還得先說說術語。SSH金鑰組,說白了就是一對鎖和鑰匙。金鑰組之所以說是"對",那是因為它是由叫做公有和私人兩個密鑰組成,而且是一對一的一對,它們最初是由隨機產生的一對質數產生的-具體深度的技術細節要牽扯到數學,頭大的很。目前來說,針對世界上99.99%的盜賊,基本是不可能破解的,也就是無法通過共有密鑰,來反推出私人密鑰的內容。總之吧,記住:公有密鑰是可以公開給任何人的,而私人密鑰是要自己儲存好的;所以,把它們當作一把鑰匙開一把鎖。 通過工具,可以製作一把鑰匙(私人密鑰)和一把鎖(公有密鑰),這個鎖只能使用這一把把鑰匙開啟,在電腦這個可以自由複製的世界裡,鑰匙和鎖都可以複製,如果你好好保管,不把鑰匙丟失/公開,那麼鎖做多少把都無所謂,反正就是這一把鑰匙可以開,也就是說,咱可以給要控制的所有電腦都安裝這把鎖的複製品,那麼用這一把鑰匙就可以控制這些電腦了。有的時候為了安全,你還可以給這把鑰匙加上一個暗號(passphrass),暗號不對,這把鑰匙也沒法使用。 電腦系統就如同一座防衛森嚴的城堡,它的圍牆根,有個正門(登入視窗服務),是讓人們正常進入的通道,那兒有個門衛(登陸驗證程式)讓你出示證件(使用者名稱和密碼);有時,門衛需要打電話給大管家,確認你的身份(網路使用者登陸),因為通行證/路牌可以被盜/泄露,但是城牆內的那個管家只有一個,它認識所有被准許進入的人,管家一看,Ok就是這個人了,門衛才讓你進,如果電話故障不通,你也從來沒有來過留下指紋,就不讓你進;有的時候一看就是本地熟人(本地帳戶),打聲招呼歐了,就讓你進門去了;而本地熟人這個路數很容易出現問題,門衛可能被收買或者易容術騙過門衛。 為什麼要用SSH密鑰就可以不用密碼登陸其它電腦呢?那是因為,你或者任何有足夠權利的人(大管家自己或者大管家的替身)-在那個電腦的一面牆(ssh服務)上,安裝了一道門(authorized_keys),在這個門上安裝了鎖,這個鎖就是你的公有密鑰,你拿著自己的那把鑰匙-私人密鑰,如果這把鑰匙設定了暗號,那麼在使用鑰匙時你先要對上暗號-嘛哩嘛哩哄,開啟這把鎖,推開門就進去了。另外一個人-如果又足夠許可權,也可以安裝自己的一個門和鎖,用自己的鑰匙開鎖也可以進去。 一般來說,開SSH進去的路,都是區區彎彎的小路,不象正門,大道兩旁燈火通明的,有會客室,有大廳,有廂房,人來人往的,你動動嘴就有衙役跟班的幫你四處行走,把事給辦了;而SSH的小路,辦什麼事都要自己親自去做,比較累,不過有些事情只要是mo men辦起來也特別順利,。 所以,電腦是否安全不能光看牆有多高,布滿電網,拉著帶刺鐵絲網的,看上去挺嚇人的。笨的去剪鐵絲網,扛著大炮轟(暴力破解),巧的的找竅門,找到門就好說了。所以是否安全,主要看你牆上有多少門,每個門和門鎖是否都足夠安全。