SSH密鑰登錄和authorized_keys, id_rsa, id_rsa.pub, known_hosts作用

我們一般使用 PuTTY 等 SSH 客戶端來遠(yuǎn)程管理 Linux 服務(wù)器易迹。但是,一般的密碼方式登錄平道,容易有密碼被暴力破解的問題睹欲。所以,一般我們會將 SSH 的端口設(shè)置為默認(rèn)的 22 以外的端口,或者禁用 root 賬戶登錄窘疮。其實(shí)袋哼,有一個(gè)更好的辦法來保證安全,而且讓你可以放心地用 root 賬戶從遠(yuǎn)程登錄——那就是通過密鑰方式登錄闸衫。

密鑰形式登錄的原理是:利用密鑰生成器制作一對密鑰——一只公鑰和一只私鑰涛贯。將公鑰添加到服務(wù)器的某個(gè)賬戶上,然后在客戶端利用私鑰即可完成認(rèn)證并登錄蔚出。這樣一來弟翘,沒有私鑰,任何人都無法通過 SSH 暴力破解你的密碼來遠(yuǎn)程登錄到系統(tǒng)身冬。此外衅胀,如果將公鑰復(fù)制到其他賬戶甚至主機(jī),利用私鑰也可以登錄酥筝。

下面來講解如何在 Linux 服務(wù)器上制作密鑰對滚躯,將公鑰添加給賬戶,設(shè)置 SSH嘿歌,最后通過客戶端登錄掸掏。

1. 制作密鑰對

首先在服務(wù)器上制作密鑰對。首先用密碼登錄到你打算使用密鑰登錄的賬戶宙帝,然后執(zhí)行以下命令:

[root@host ~]$ ssh-keygen <== 建立密鑰對

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase): <== 輸入密鑰鎖碼丧凤,或直接按 Enter 留空

Enter same passphrase again: <== 再輸入一遍密鑰鎖碼

Your identification has been saved in /root/.ssh/id_rsa. <== 私鑰

Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公鑰

The key fingerprint is:

0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

密鑰鎖碼在使用私鑰時(shí)必須輸入,這樣就可以保護(hù)私鑰不被盜用步脓。當(dāng)然愿待,也可以留空,實(shí)現(xiàn)無密碼登錄靴患。

現(xiàn)在仍侥,在 root 用戶的家目錄中生成了一個(gè) .ssh 的隱藏目錄鸳君,內(nèi)含兩個(gè)密鑰文件。id_rsa 為私鑰或颊,id_rsa.pub 為公鑰。

2. 在服務(wù)器上安裝公鑰

鍵入以下命令醉顽,在服務(wù)器上安裝公鑰:

[root@host ~]$ cd .ssh

[root@host .ssh]$ cat id_rsa.pub >> authorized_keys

如此便完成了公鑰的安裝。為了確保連接成功徽鼎,請保證以下文件權(quán)限正確:

[root@host .ssh]$ chmod 600 authorized_keys

[root@host .ssh]$ chmod 700 ~/.ssh

3. 設(shè)置 SSH,打開密鑰登錄功能

編輯 /etc/ssh/sshd_config 文件否淤,進(jìn)行如下設(shè)置:

RSAAuthentication yes

PubkeyAuthentication yes

另外,請留意 root 用戶能否通過 SSH 登錄:

PermitRootLogin yes

當(dāng)你完成全部設(shè)置石抡,并以密鑰方式登錄成功后,再禁用密碼登錄:

PasswordAuthentication no

最后嚎京,重啟 SSH 服務(wù):

[root@host .ssh]$ service sshd restart

4. 將私鑰下載到客戶端,然后轉(zhuǎn)換為 PuTTY 能使用的格式

使用 WinSCP鞍帝、SFTP 等工具將私鑰文件 id_rsa 下載到客戶端機(jī)器上煞茫。然后打開 PuTTYGen,單擊 Actions 中的 Load 按鈕续徽,載入你剛才下載到的私鑰文件。如果你剛才設(shè)置了密鑰鎖碼钦扭,這時(shí)則需要輸入。

載入成功后其弊,PuTTYGen 會顯示密鑰相關(guān)的信息。在 Key comment 中鍵入對密鑰的說明信息瑞凑,然后單擊 Save private key 按鈕即可將私鑰文件存放為 PuTTY 能使用的格式。

今后,當(dāng)你使用 PuTTY 登錄時(shí)练慕,可以在左側(cè)的 Connection -> SSH -> Auth 中的 Private key file for authentication: 處選擇你的私鑰文件,然后即可登錄了铃将,過程中只需輸入密鑰鎖碼即可。

一劲阎、known_hsots
ssh會把你每個(gè)你訪問過計(jì)算機(jī)的公鑰(public key)都記錄在~/.ssh/known_hosts。當(dāng)下次訪問相同計(jì)算機(jī)時(shí)龄毡,OpenSSH會核對公鑰。如果公鑰不同沦零,OpenSSH會發(fā)出警告, 避免你受到DNS Hijack之類的攻擊路操。我在上面列出的情況,就是這種情況屯仗。

原因:一臺主機(jī)上有多個(gè)Linux系統(tǒng),會經(jīng)常切換桩撮,那么這些系統(tǒng)使用同一ip,登錄過一次后就會把ssh信息記錄在本地的~/.ssh/known_hsots文件中慌核,切換該系統(tǒng)后再用ssh訪問這臺主機(jī)就會出現(xiàn)沖突警告,需要手動(dòng)刪除修改known_hsots里面的內(nèi)容垫桂。

有以下兩個(gè)解決方案:

  1. 手動(dòng)刪除修改known_hsots里面的內(nèi)容;
  2. 修改配置文件“~/.ssh/config”诬滩,加上這兩行灭将,重啟服務(wù)器。
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null

優(yōu)缺點(diǎn):

  1. 需要每次手動(dòng)刪除文件內(nèi)容庙曙,一些自動(dòng)化腳本的無法運(yùn)行(在SSH登陸時(shí)失敗)捌朴,但是安全性高;
  2. SSH登陸時(shí)會忽略known_hsots的訪問洼怔,但是安全性低;

二左驾、authorized_keys
1极谊、就是為了讓兩個(gè)linux機(jī)器之間使用ssh不需要用戶名和密碼安岂。采用了數(shù)字簽名RSA或者DSA來完成這個(gè)操作

2、模型分析

假設(shè) A (192.168.20.59)為客戶機(jī)器嗜闻,B(192.168.20.60)為目標(biāo)機(jī);

要達(dá)到的目的:
A機(jī)器ssh登錄B機(jī)器無需輸入密碼琉雳;
加密方式選 rsa|dsa均可以,默認(rèn)dsa
單向登陸的操作過程(能滿足上邊的目的):
1檐束、登錄A機(jī)器
2、ssh-keygen -t [rsa|dsa]被丧,將會生成密鑰文件和私鑰文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、將 .pub 文件復(fù)制到B機(jī)器的 .ssh 目錄甥桂, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成黄选,從A機(jī)器登錄B機(jī)器的目標(biāo)賬戶婶肩,不再需要密碼了;(直接運(yùn)行 #ssh 192.168.20.60 )

雙向登陸的操作過程:

1律歼、ssh-keygen做密碼驗(yàn)證可以使在向?qū)Ψ綑C(jī)器上ssh ,scp不用使用密碼.具體方法如下:
2、兩個(gè)節(jié)點(diǎn)都執(zhí)行操作:#ssh-keygen -t rsa
然后全部回車,采用默認(rèn)值.

3险毁、這樣生成了一對密鑰,存放在用戶目錄的~/.ssh下离唐。
將公鑰考到對方機(jī)器的用戶目錄下,并將其復(fù)制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。

二完沪、id_rsa嵌戈、id_rsa.pub
上班的第一天听皿,上司大哥都會說:待會給我發(fā)個(gè)公鑰吧。
這里說的公鑰其實(shí)就是id_rsa.pub尉姨。
上司大哥是要把我們的客戶端公鑰上傳到服務(wù)器,然后再把這個(gè)客戶端公鑰添加到authorized_keys又厉。添加后,服務(wù)器就會認(rèn)為你這個(gè)客戶端為可信任覆致。你則可以訪問這個(gè)服務(wù)器了。

獲取id_rsa.pub

終端輸入

ssh-keygen
1
一路回車煌妈,最后會看到一個(gè)矩形的圖案。
你這時(shí)ls是看不到.ssh文件夾的璧诵。

cd .ssh/
1
這樣就會切換到.ssh,再ls
就會看到id_rsa 和id_rsa.pub

open ./
1
就會打開這個(gè)文件夾了之宿。
現(xiàn)在你可以發(fā)id_rsa.pub給你的上司大哥了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坪创,一起剝皮案震驚了整個(gè)濱河市姐赡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌项滑,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枪狂,死亡現(xiàn)場離奇詭異,居然都是意外死亡辜限,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門薄嫡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人毫深,你說我怎么就攤上這事⊙颇瑁” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵闸迷,是天一觀的道長。 經(jīng)常有香客問我稿黍,道長,這世上最難降的妖魔是什么言沐? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮险胰,結(jié)果婚禮上矿筝,老公的妹妹穿的比我還像新娘。我一直安慰自己窖维,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布鼻疮。 她就那樣靜靜地躺著,像睡著了一般琳轿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挪哄,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天琉闪,我揣著相機(jī)與錄音,去河邊找鬼颠毙。 笑死拿霉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涵防,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼偏瓤!你這毒婦竟也來了椰憋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤橙依,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后窗骑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抵知,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年软族,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片立砸。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖氮墨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情规揪,我是刑警寧澤温峭,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站凤藏,受9級特大地震影響堕伪,放射性物質(zhì)發(fā)生泄漏栗菜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一疙筹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧而咆,春花似錦、人聲如沸暴备。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至汰瘫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間趴乡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工晾捏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哀托,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓胖齐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呀伙。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

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