linux關(guān)于ssh免密登錄、known-創(chuàng)新互聯(lián)

1. 關(guān)于ssh

SSH 是 Secure Shell 的縮寫,SSH 為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。SSH 是目前廣泛采用的安全登錄協(xié)議,專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議,替代以前不安全的Telnet協(xié)議。利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。

創(chuàng)新互聯(lián)公司成立與2013年,先為會寧等服務(wù)建站,會寧等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為會寧企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

scp、sftp等都是基于ssh協(xié)議來進(jìn)行遠(yuǎn)程傳輸?shù)摹?/p>2. 對稱加密和非對稱加密

  • 對稱加密:例如AES,加密和解密使用同一個密鑰,不安全,如果密鑰丟失,加密的信息就會被竊取,并且可以篡改信息,重新加密;對于接收方來說,并不知道這串加密的信息是受信任的發(fā)來的還是黑客偽造的。

  • 非對稱加密:例如RSA,加密和解密使用不同的密鑰,存在一對密鑰對,公鑰和私鑰,公鑰可以發(fā)送給別人,私鑰需要自己保存。常用的公鑰加密,私鑰解密,例如:小明要發(fā)送消息給小紅,小紅把自己的公鑰給小明,小明利用小紅的公鑰加密發(fā)送給小紅,小紅再使用自己的私鑰進(jìn)行解密。即使小紅的公鑰被竊取,黑客沒有小紅的私鑰也解密不了信息。

3. ssh免密登錄原理

服務(wù)器A要免密登錄服務(wù)器B,則要把服務(wù)器A的公鑰存到服務(wù)器B的授權(quán)公鑰文件中;先在服務(wù)器A上生成一對秘鑰(ssh-keygen),然后將公鑰拷貝到服務(wù)器B的authorized_keys文件中。

原理:

  • 服務(wù)器A向服務(wù)器B發(fā)送一個連接請求,信息包括服務(wù)器A此時登錄的用戶名、服務(wù)器A的ip以及要免密登錄的服務(wù)器B的用戶名;
  • 服務(wù)器B收到請求,會從服務(wù)器A要免密登錄服務(wù)器B的用戶名家目錄下 authorized_keys 中查找是否有相同的服務(wù)器A用戶名、服務(wù)器Aip;
  • 如果有,服務(wù)器B會隨機生成一個字符串,然后使用服務(wù)器A的公鑰進(jìn)行加密,再發(fā)送給服務(wù)器A;
  • 服務(wù)器A接到服務(wù)器B發(fā)來的信息后,會使用私鑰進(jìn)行解密,然后將解密后的字符串發(fā)送給服務(wù)器B;
  • 服務(wù)器B接到服務(wù)器A發(fā)來的信息后,會和之前生成的字符串進(jìn)行比對,如果一致,則允許免密登錄。
4. ssh免密登錄配置

在進(jìn)行配置之前需要先關(guān)閉防火墻,并且最好給服務(wù)器設(shè)置主機名,并配置 /etc/hosts 文件映射。

systemctl status firewalld.service # 查看防火墻狀態(tài)
systemctl stop firewalld.service # 關(guān)閉防火墻
systemctl disable firewalld.service # 移除防火墻開機自啟動

步驟:

  1. 假設(shè)A服務(wù)器需要免密登錄B服務(wù)器,那么在A服務(wù)器執(zhí)行命令:ssh-keygen -t rsa(默認(rèn)就是RSA加密算法,可不用加-t rsa);密鑰對生成過程會提示輸入私鑰加密密碼,可以直接回車不使用密碼保護(hù)。命令執(zhí)行完成后會在~/.ssh目錄下生成兩個文件:id_rsa(私鑰)和id_rsa.pub(公鑰)
  2. 將公鑰文件id_rsa.pub中的內(nèi)容拷貝到B服務(wù)器的~/.ssh目錄下的授權(quán)公鑰文件authorized_keys中
5. ssh免密登錄注意事項

首先,假設(shè)A服務(wù)器要免密登錄B服務(wù)器,我們將A服務(wù)器通過ssh-keygen命令生成的公鑰寫進(jìn)B服務(wù)器authorized_keys文件中。涉及以下注意事項:

A服務(wù)器生成的公鑰如下:root@sangfor-node7代表這是root用戶生成的公鑰

請?zhí)砑訄D片描述

如果我們將其拷貝到B服務(wù)器/root/.ssh/authorized_keys文件中,那么A服務(wù)器就能以B服務(wù)器的root賬號免密登錄成功,也就是:ssh root@B服務(wù)器可以免密登錄成功;但是如果是以B服務(wù)器的其它賬號進(jìn)行登錄,則無法免密,例如:ssh admin@B服務(wù)器需要輸入admin賬號的密碼才可以登錄。

如果我們希望A服務(wù)器也能以B服務(wù)器的admin賬號免密登錄成功,那么還需要將A服務(wù)器的公鑰拷貝到B服務(wù)器:/home/admin/.ssh/authorized_keys文件中(即admin用戶的家目錄下)。

另外,A服務(wù)器生成的公鑰文件中包含root@sangfor-node7代表這是root用戶生成的公鑰;如果A服務(wù)器是以root賬號去執(zhí)行命令:ssh root@B服務(wù)器可以免密登錄成功;但是如果A服務(wù)器是以其它賬號,例如wyf,去執(zhí)行命令:ssh root@B服務(wù)器則需要輸入密碼;因為B服務(wù)器/root/.ssh/authorized_keys文件中存儲的是A服務(wù)器root用戶的公鑰,如果我們希望A服務(wù)器以wyf賬號登錄去執(zhí)行命令:ssh root@B服務(wù)器也可以免密登錄成功;那么需要在A服務(wù)器切換成wyf賬號,執(zhí)行ssh-keygen,那么生成的公鑰文件位于/home/wyf/.ssh/目錄下,并且包含wyf@sangfor-node7,代表這是wyf用戶的公鑰。再把這個公鑰寫入B服務(wù)器authorized_keys文件中即可。

如下:

請?zhí)砑訄D片描述
請?zhí)砑訄D片描述

最后,還需要注意域名問題,由于A服務(wù)器配置了主機名為sangfor-node7,因此生成的公鑰文件包含主機名,如:root@sangfor-node7,但是B服務(wù)器并不知道這個主機名代表哪個ip地址,因此需要在B服務(wù)器的/etc/hosts文件中配置sangfor-node7主機名和ip的映射。

6. github配置本機ssh公鑰步驟及原理

如果我們要把本地代碼以ssh方式push到github上,為避免每次push都需要輸入github賬號和密碼,則需要配置本機免密登錄github,免密登錄原理和A服務(wù)器免密登錄B服務(wù)器一樣。

配置步驟參考文檔:https://blog.csdn.net/wenfu814/article/details/120625844

7. known_hosts文件

A通過ssh首次連接到B,B會將公鑰1(host key)傳遞給A,A將公鑰1存入known_hosts文件中,以后A再連接B時,B依然會傳遞給A一個公鑰2,OpenSSH會核對公鑰,通過對比公鑰1與公鑰2 是否相同來進(jìn)行簡單的驗證,如果公鑰不同,OpenSSH會發(fā)出警告,并且需要用戶交互式的輸入yes/no, 避免受到DNS Hijack之類的攻擊;如果公鑰相同,則不會發(fā)出警告。

例如:
A服務(wù)器首次ssh登錄B服務(wù)器,由于A服務(wù)器的known_hosts文件中沒有B服務(wù)器的公鑰,因此控制臺會發(fā)出警告,并且需要用戶輸入yes/no

請?zhí)砑訄D片描述

當(dāng)我們輸入yes之后,A服務(wù)器的known_hosts文件會增加一條記錄(B服務(wù)器的公鑰);再輸入B服務(wù)器的密碼,ssh登錄成功

請?zhí)砑訄D片描述

當(dāng)A服務(wù)器再次ssh登錄B服務(wù)器,B依然會傳遞給A一個公鑰,OpenSSH會核對公鑰,將該公鑰和A服務(wù)器known_hosts文件保存的B服務(wù)器的公鑰進(jìn)行對比,由于相同,則不會發(fā)出警告,直接讓用戶輸入密碼

請?zhí)砑訄D片描述

如果我們不希望在進(jìn)行ssh登錄時進(jìn)行公鑰檢查,可以加上"StrictHostKeyChecking no"跳過公鑰檢查,就不需要用戶手動輸入yes/no(這在一些自動化場景經(jīng)常使用到)

請?zhí)砑訄D片描述

備注:如果A通過ssh登陸B(tài)時提示Host key verification failed.;原因是A的known_hosts文件中記錄的B的公鑰1與連接時B傳過來的公鑰2不匹配。
解決方法:刪除A的known_hosts文件中記錄的B的公鑰,當(dāng)再次ssh登錄B時,重新寫入B服務(wù)器最新的公鑰即可。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前題目:linux關(guān)于ssh免密登錄、known-創(chuàng)新互聯(lián)
文章鏈接:http://bm7419.com/article28/cdidcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、響應(yīng)式網(wǎng)站營銷型網(wǎng)站建設(shè)、網(wǎng)站排名云服務(wù)器、網(wǎng)站策劃

廣告

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

成都app開發(fā)公司