如何為DigitalOcean上的服務器配置SSH密鑰


  本指南適用於mac OS和Linux,windows用戶請繞道。

  通常,當你啟動DigitalOcean droplets時,只要過程完成,你會收到一封電子郵件,讓你知道droplets的IP地址和密碼。盡管此電子郵件非常方便,但是如果可以無需電子郵件即可獲得訪問服務器的更安全(更快)的方式那肯定就再好不過了這可以通過設置SSH密鑰來完成。

  SSH密鑰是計算機與服務器之間的密鑰對,如果服務器在您登錄的計算機上看到匹配的密鑰,則允許服務器進行連接。盡管密碼最終可能通過強力攻擊破解,但SSH密鑰幾乎不可能通過強力破解。您可以通過將計算機的SSH密鑰添加到控制面板,使用已經在其上設置的SSH密鑰創建新的DigitalOcean droplets。

 

第一步 - 創建RSA密鑰對

  第一步是在客戶機上創建密鑰對(一般就是本機):

ssh-keygen
 

第二步 - 存儲密鑰和密碼

  一旦輸入了Gen Key命令,你將會得到更多的問題:

輸入保存密鑰的文件(/demo/.ssh/id_rsa):

  可以在這里按回車,將文件保存到用戶主目錄(在這種情況下,我的示例用戶名為demo)。

輸入密碼(沒有密碼時為空):

  這是用於生成SSH的密碼,推薦用一個好記的密碼,整個密鑰生成過程如下所示:

ssh-keygen
生成公鑰/私鑰rsa密鑰對。
輸入保存密鑰的文件(/demo/.ssh/id_rsa): 
輸入密碼(沒有密碼時為空): 
再次輸入相同的密碼: 
您的身份已保存在/demo/.ssh/id_rsa中。
您的公鑰已保存在/demo/.ssh/id_rsa.pub中。
關鍵指紋是:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo @ a
密鑰的randomart圖像是:
+  -  [RSA 2048] ---- + | .oo。| | oE | | +。o | | = =。| | = S =。| | o + = + | | o + o。| | o | | |
+ ----------------- +

  公鑰現在位於/demo/.ssh/id_rsa.pub,私鑰(標識)現在位於/demo/.ssh/id_rsa中

 

第三步 - 復​​制SSH密鑰

  一旦設置了SSH密鑰,就可以將其復制到控制面板中。打開SSH頁面,然后單擊創建新的SSH密鑰按鈕。

  應該出現一個彈出窗口

SSH密鑰彈出

  小方框中寫入創建名稱(例如“家用計算機”)

  大方框中復制並粘貼在步驟2中創建的公鑰。

  以下命令可以得到密鑰:

 cat〜/.ssh /id_rsa.pub

”SSH

點擊保存。

 

第四步 - 打開一個新的服務器

  前面的步驟解釋了如何使用預先安裝的SSH密鑰設置服務器。但是,不能使用控制面板將按鍵添加到已創建的 droplets。

  為了向預先存在的服務器添加其他鍵,可以使用SSH粘貼鍵:

cat ~/.ssh/id_rsa.pub | ssh root@[your.ip.address.here] "cat >> ~/.ssh/authorized_keys"

  在實際啟動新服務器時,從“Create a Droplet”屏幕中可以選擇已有的密鑰,選擇一個安裝到服務器上就可以

SSH快捷鍵

 

第五步 - 連接服務器

  使用預先安裝的SSH密鑰創建服務器后,可以按照與之前相同的方式連接到服務器:

ssh root@[your.ip.address.here]

  但是,現在,從共享密鑰對的計算機進行連接時,不需要輸入密碼即可登錄到root用戶。

主機鍵警告

  如果在創建要連接的服務器之前直接摧毀了服務器,則可能會看到如下消息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @警告:遠程主機標識已更改!@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
它可能是某人正在做某事的地方!
現在有人可能會竊聽你(中間人攻擊)!
主機密鑰剛剛更改也是可能的。
...

如果是這種情況,新服務器可能具有與舊的相同的IP地址,但是具有不同的主機SSH密鑰可以通過運行以下命令來刪除警告,方法是從系統中刪除舊的主機密鑰:

ssh-keygen -R [your.ip.address.here]

  現在嘗試再次連接到服務器。

 

步驟六鎖定根SSH訪問僅密鑰

  在確認現在可以以root用戶身份登錄到服務器而沒有提示輸入密碼后,可以禁用root用戶的密碼登錄。這使得服務器更安全,因為沒有人可以暴力破解SSH密碼。

有必要編輯服務器的SSHd配置/etc/ssh/sshd_config並更新以下行以讀取:

PermitRootLogin 不帶密碼

現在有必要重新啟動或重新啟動sshd進程以重新讀取新配置。這可以通過以下方式完成:

#ps auxw | grep ssh
USER PID%CPU%MEM VSZ RSS TTY STAT START TIME COMMAND681 0.0 0.1 49948 2332?Ss 2012 3:23 / usr / sbin / sshd -D
#kill -HUP 681

現在,服務器的root登錄名受到保護,可以通過嘗試以root用戶身份從未共享密鑰的系統向此服務器進行SSH測試,將自動踢出而不會提示輸入root密碼。

 


免責聲明!

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



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