Linux:SSH免密碼登錄原理及實(shí)戰(zhàn)

2021-02-19    分類: 網(wǎng)站建設(shè)

SSH免密碼登錄原理,我們先來(lái)說(shuō)說(shuō)SSH的安全驗(yàn)證,SSH采用的是"非對(duì)稱密鑰系統(tǒng)",即耳熟能詳?shù)墓€私鑰加密系統(tǒng),其安全驗(yàn)證又分為兩種級(jí)別。

1、基于口令的安全驗(yàn)證

這種方式使用用戶名密碼進(jìn)行聯(lián)機(jī)登錄,一般情況下我們使用的都是這種方式。整個(gè)過(guò)程大致如下:

(1)客戶端發(fā)起連接請(qǐng)求。

(2)遠(yuǎn)程主機(jī)收到用戶的登錄請(qǐng)求,把自己的公鑰發(fā)給客戶端。

(3)客戶端接收遠(yuǎn)程主機(jī)的公鑰,然后使用遠(yuǎn)程主機(jī)的公鑰加密登錄密碼,緊接著將加密后的登錄密碼連同自己的公鑰一并發(fā)送給遠(yuǎn)程主機(jī)。

(4)遠(yuǎn)程主機(jī)接收客戶端的公鑰及加密后的登錄密碼,用自己的私鑰解密收到的登錄密碼,如果密碼正確則允許登錄,到此為止雙方彼此擁有了對(duì)方的公鑰,開始雙向加密解密。

PS:當(dāng)網(wǎng)絡(luò)中有另一臺(tái)冒牌服務(wù)器冒充遠(yuǎn)程主機(jī)時(shí),客戶端的連接請(qǐng)求被服務(wù)器B攔截,服務(wù)器B將自己的公鑰發(fā)送給客戶端,客戶端就會(huì)將密碼加密后發(fā)送給冒牌服務(wù)器,冒牌服務(wù)器就可以拿自己的私鑰獲取到密碼,然后為所欲為。因此當(dāng)?shù)谝淮捂溄舆h(yuǎn)程主機(jī)時(shí),在上述步驟的第(3)步中,會(huì)提示您當(dāng)前遠(yuǎn)程主機(jī)的"公鑰指紋",以確認(rèn)遠(yuǎn)程主機(jī)是否是正版的遠(yuǎn)程主機(jī),如果選擇繼續(xù)后就可以輸入密碼進(jìn)行登錄了,當(dāng)遠(yuǎn)程的主機(jī)接受以后,該臺(tái)服務(wù)器的公鑰就會(huì)保存到 ~/.ssh/known_hosts文件中。

2、基于密匙的安全驗(yàn)證

這種方式你需要在當(dāng)前用戶家目錄下為自己創(chuàng)建一對(duì)密匙,并把公匙放在需要登錄的服務(wù)器上。當(dāng)你要連接到服務(wù)器上時(shí),客戶端就會(huì)向服務(wù)器請(qǐng)求使用密匙進(jìn)行安全驗(yàn)證。服務(wù)器收到請(qǐng)求之后,會(huì)在該服務(wù)器上你所請(qǐng)求登錄的用戶的家目錄下尋找你的公匙,然后與你發(fā)送過(guò)來(lái)的公匙進(jìn)行比較。如果兩個(gè)密匙一致,服務(wù)器就用該公匙加密"質(zhì)詢"并把它發(fā)送給客戶端??蛻舳耸盏?質(zhì)詢"之后用自己的私匙解密再把它發(fā)送給服務(wù)器。與第一種級(jí)別相比,第二種級(jí)別不需要在網(wǎng)絡(luò)上傳送口令。

PS:簡(jiǎn)單來(lái)說(shuō),就是將客戶端的公鑰放到服務(wù)器上,那么客戶端就可以免密碼登錄服務(wù)器了,那么客戶端的公鑰應(yīng)該放到服務(wù)器上哪個(gè)地方呢?默認(rèn)為你要登錄的用戶的家目錄下的 .ssh 目錄下的 authorized_keys 文件中(即:~/.ssh/authorized_keys)。

3、使用場(chǎng)景

rsync自動(dòng)備份時(shí)免密碼登錄,scp拷貝文件,集群環(huán)境中需要主機(jī)間互相通信如:Hadoop

實(shí)驗(yàn)準(zhǔn)備:準(zhǔn)備兩臺(tái)Centos系統(tǒng)機(jī)器

服務(wù)端:192.168.8.7

客戶端:192.168.8.8

1)安裝SSH軟件,執(zhí)行以下命令

[root@localhost ~]# yum -y install openssh-clients openssh-server

[root@localhost ~]# ssh-keygen -t rsa -P '' ( 參數(shù)-P是大寫的,-P后面的單引號(hào)對(duì)與大寫P之前有空格)

1

2)直接按確定(Enter)即可,會(huì)生成公鑰(id_rsa.pub),私鑰(id_rsa)文件

2

3)拷貝公鑰到客戶端

[root@localhost ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.8.8

輸入確定或者yes,然后輸入客戶端root登錄密碼

3

4)免密匙認(rèn)證測(cè)試(客戶端需要安裝openssh-clients)

[root@localhost ~]# touch test.txt

[root@localhost ~]# scp test.txt root@192.168.8.8:/root

4

5)客戶端驗(yàn)證文件是否拷貝過(guò)來(lái)


分享文章:Linux:SSH免密碼登錄原理及實(shí)戰(zhàn)
文章轉(zhuǎn)載:http://www.bm7419.com/news23/101823.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、手機(jī)網(wǎng)站建設(shè)、微信公眾號(hào)、標(biāo)簽優(yōu)化服務(wù)器托管、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化