1. 程式人生 > >Azure中創建安全Linux 虛機

Azure中創建安全Linux 虛機

雲計算 雲服務

由於密碼易受到強力破解攻擊,特別是在面向 Internet 的 VM(如 Web 服務器)上。連接到 Azure 中的 Linux 虛擬機 (VM) 時,應使用公鑰加密提供更安全的方式登錄到 Linux VM。 此過程涉及使用安全外殼 (SSH) 命令進行公鑰和私鑰交換,對自己(而不是用戶名和密碼)進行身份驗證。筆者將通過本文介紹如何如何在 Windows 計算機上生成相應的密鑰並在Azure中創建Linux虛機時使用SSH密鑰。Azure 需要至少 2048 位采用 ssh-rsa 格式的公鑰和私鑰。可以使用ssh-keygen或者openssl工具來生成相關的密鑰,這兩個工具在git中都有提供,我們需要先安裝git。

1、安裝Git

  • 從以下位置下載並安裝 Git for Windows:https://git-scm.com/。

  • 在安裝過程中,除非特別需要更改選項,否則請接受默認選項。

  • 從“開始”菜單 > “Git” > “Git Bash”運行“Git Bash”。

技術分享圖片

2、創建ssh私鑰

在“Git Bash”窗口中,使用 openssl.exe 創建私鑰。 以下示例創建名為 myPrivateKey 的密鑰和名為 myCert.pem 的證書:

openssl.exe req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout myPrivateKey.key -out myCert.pem

技術分享圖片

應答國家/地區名稱、位置、組織名稱等提示。其中國家使用2個字符的代碼,中國為cn

技術分享圖片

將在當前工作目錄中創建新的私鑰和證書。 為了安全起見,應在私鑰上設置權限,以便只有可以訪問它:chmod 0600 myPrivateKey.key

技術分享圖片

3、為 PuTTY 創建私鑰

PuTTY 是適用於 Windows 的常見 SSH 客戶端。 可隨意使用任何所需的 SSH 客戶端。 要使用 PuTTY,需要創建其他類型的密鑰 - PuTTY 私鑰 (PPK)。

使用 Git Bash 將私鑰轉換為 PuTTYgen 可以識別的 RSA 私鑰。 以下示例基於名為 myPrivateKey 的現有密鑰創建名為 myPrivateKey_rsa

的密鑰:openssl rsa -in ./myPrivateKey.key -out myPrivateKey_rsa

技術分享圖片

為了安全起見,應在私鑰上設置權限,以便只有可以訪問它:chmod 0600 myPrivateKey_rsa

技術分享圖片

從以下位置下載並運行 PuTTYgen:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

單擊菜單:“文件” > “加載私鑰”

技術分享圖片

找到私鑰(前面的示例中的 myPrivateKey_rsa)。 啟動 Git Bash 時的默認目錄是 C:\Users\%username%。 更改文件篩選器以顯示“所有文件 (*.*)”:

技術分享圖片

單擊“打開”。公鑰會顯示在“PuTTYgen”窗口的頂部。 創建 Linux VM 時,將此公鑰復制並粘貼到 Azure 門戶或 Azure 資源管理器模板中。 也可以單擊“保存公鑰”將副本保存到計算機中:

技術分享圖片

4、Azure中創建安全Linux虛機

登錄Azure門戶,然後創建虛擬機,在創建 Linux VM 時將此上述公鑰復制並粘貼到 Azure 門戶。 然後,此公鑰通常存儲在新 VM 上的 ~/.ssh/authorized_keys 中。

技術分享圖片

返回到 PuTTYgen 中,單擊“保存私鑰”:會顯示一個提示,詢問是否想要繼續,而不輸入密鑰的通行短語。 通行短語就像附加到私鑰的密碼。 即使有人獲取了私鑰,他們仍將不能只使用密鑰進行身份驗證。 他們還需要通行短語。 沒有通行短語,如果有人獲取了私鑰,他們可以登錄到使用該密鑰的任何 VM 或服務。 建議創建一個通行短語。 但是,如果忘記了通行短語,將沒有辦法恢復它。

技術分享圖片

如果要輸入通行短語,請單擊“否”,在主要的 PuTTYgen 窗口中輸入通行短語,再次單擊“保存私鑰”。 否則,請單擊“是”以繼續,而不提供可選的通行短語。

5、使用 Putty 通過 SSH 登錄到 Linux 計算機

從以下位置下載並運行 putty:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

在 Putty Hostname中填寫 username@IP(或username@主機名)如下圖

技術分享圖片

註意:不能只填寫IP地址或者主機名,否則連接後還會出現讓你輸入用戶名密碼。

在選擇“打開”之前,單擊“連接” > “SSH” > “身份驗證”選項卡。瀏覽到私鑰並選擇它:

技術分享圖片

點擊open,即可直接連接到Azure中的該臺Linux虛機,無需再輸入用戶名和密碼。

技術分享圖片

Azure中創建安全Linux 虛機