什么是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
