使用ssh秘鑰對(證書)免密登陸Liunx實例


什么是SSH

SSH 為 Secure Shell 的縮寫,由 IETF 的網絡工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。

SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,后來又迅速擴展到其他操作平台。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用於多種平台。幾乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可運行SSH。

為什么密鑰比密碼安全:

密鑰對是通過一種算法生成的一對密鑰,在生成的密鑰對中,一個向外界公開,稱

為公鑰;另一個用戶自己保留,稱為私鑰。

使用SSH密鑰管理有什么好處?

1.安全性高:

(1)密鑰對安全強度遠高於常規用戶口令,杜絕暴力破解威脅;

(2)不可能通過公鑰推導出私鑰。

2.易用快捷:

(1)首次使用只需服務器上進行配置,再對客戶端做簡單配置即可,以后登錄時無

需再輸入密碼;

(2)一台服務器支持多個公鑰,有人員離職時,只需要將其負責服務器上的公鑰統

一刪除即可,避免離職人員帶來的安全風險。

認識SSH 密鑰對

相較於傳統的用戶名和密碼認證方式,SSH 密鑰對有以下特點:

  • 僅適用於 Linux 實例。
  • SSH 密鑰對登錄認證更為安全可靠。
  • 便於遠程登錄大量 Linux 實例,方便管理。

什么是 SSH 密鑰對

  • SSH 密鑰對是通過一種加密算法生成的一對密鑰:一個對外界公開,稱為“公鑰”;另一個您自己保留,稱為“私鑰”。
  • 如果您已經將公鑰配置在 Linux 實例中,那么,在本地或者另外一個實例中,您可以使用私鑰通過 SSH 命令或相關工具登錄實例,而不需要輸入密碼。

優勢

使用 SSH 密鑰對有以下優勢:

  • 安全性高:
    • 密鑰對安全強度遠高於常規用戶口令,可以杜絕暴力破解威脅。
    • 不可能通過公鑰推導出私鑰。
  • 易用快捷:只需在控制台和本地客戶端做簡單配置即可遠程登錄實例,再次登錄時無需再輸入密碼。如果您需要批量維護多個 ECS 實例,推薦使用這種方式登錄。
  • 密鑰對必須支持下列任一種加密方式:
    • Rsa (默認)
    • dsa
    • ssh-rsa
    • ssh-dss
    • ecdsa
    • ssh-rsa-cert-v00@openssh.com
    • ssh-dss-cert-v00@openssh.com
    • ssh-rsa-cert-v01@openssh.com
    • ssh-dss-cert-v01@openssh.com
    • ecdsa-sha2-nistp256-cert-v01@openssh.com
    • ecdsa-sha2-nistp384-cert-v01@openssh.com
    • ecdsa-sha2-nistp521-cert-v01@openssh.com

liunx中使用ssh秘鑰

     使用ssh-keygen生成秘鑰

 

 -b 2014是設置秘鑰的字節長度 –t rsa是設置秘鑰的加密方式;

然后一直回車直到生成上面這張所謂的image;這時秘鑰已經生成了,可是並沒有添liunx實例中去,接下來我們來為這個liunx實例添加秘鑰對即ssh證書;

打開~/.ssh目錄下的文件,

 

 可以看到有id-rsa和id-rsa.pub這兩個文件,其中id-rsa是秘鑰對的私鑰,id-rsa.pub是秘鑰對中的公鑰,將公鑰添加到新建的authorized_keys中

 

 為什么要添加到authorized_keys呢,這個可以從/etc/ssh/sshd_config中看到如下配置

通過vi打開/etc/ssh/sshd_config

 

 Liunx實例驗證合法的證書是中這個路徑中的authorized_keys文件中取得公鑰的,所以要將這一行的注釋去掉;

注意:這里因為修改的是系統文件,所以要root權限,用sodu來獲取臨時的root權限;

安全起見,設置驗證文件為600:

chmod 600 ~/.ssh/authorized_keys

並且設置 .ssh 文件夾權限為700

chmod 700 ~/.ssh

當使用了秘鑰對時,可以禁用密碼登陸,只要在sshd_config中追加如下一行,即可禁用密碼登陸:

 

當配置完這些后,還需要重啟ssh,同樣,在重啟ssh時也是需要roo權限:

 

這樣,就為這個liunx實例添加了一個ssh證書即秘鑰對;

 

實例有了公鑰,客戶端就可以使用對應的私鑰來登陸這個實例:

例如如果是使用putty來登陸實例的話,就需要是有puttygen在重編譯私鑰,

先將liunx實例上的私鑰download下來,改一下后綴(*.ppk),然后打開puttygen(),

File->load private key 然后再save private key,這樣就重編譯了一個私鑰,然后使用putty登陸liunx實例時,

 

找到SSh中的Auth中的private key file fro authentication導入剛剛重編譯后的私鑰,然后open,這樣我們只需要輸入用戶名,liunx實例就會通過ssh秘鑰解碼出私鑰,只要私鑰和liunx實例上的公鑰匹配的話,就允許登陸;

同樣的,如果是用winscp可視化操作liunx實例上的文件時,也需要使用私鑰登陸

 

 

在高級中找到SSH中的驗證,導入私鑰,這樣就可以登陸到liunx實例中了;

 

注:遠程登錄

SSH指定密鑰,連接遠程服務器。

ssh –i /root/.ssh/ido_sch_pro guoxm@192.168.100.110 –p 22

如上:

/root/.ssh/ido_sch_pro:密鑰文件路徑

guoxm@192.168.100.110:需要連接的服務器用戶名與IP

-p 22:端口22


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM