如何在 Ubuntu 上生成 SSH 金鑰?


簡介

在本文中,我們將重點介紹如何在 Ubuntu 上生成 SSH 金鑰——這是全球開發人員廣泛使用的最流行的 Linux 發行版之一。我們將提供使用命令列介面 (CLI) 和 FileZilla 等 GUI 工具生成 SSH 金鑰對的分步說明。本文還將介紹使用者在 Ubuntu 上生成或使用 SSH 金鑰時可能遇到的常見問題,以及每個問題的故障排除技巧和解決方案。

無論您是希望安全訪問遠端伺服器的開發人員,還是負責大規模維護安全性的系統管理員,本文都旨在幫助您在 Ubuntu 上生成強大且安全的 SSH 金鑰對。讓我們開始吧!

使用 SSH 金鑰優於密碼的優勢

使用密碼進行身份驗證一直存在問題,因為如果安全性不足,駭客很容易猜測到密碼。相比之下,SSH 金鑰更加安全,因為如果沒有訪問私鑰,幾乎不可能破解它們。此外,SSH 金鑰比密碼提供更高的安全級別,因為與密碼不同,SSH 金鑰無法被猜測或竊取。

因此,使用 SSH 金鑰是保護您的機器和資料免受未授權訪問的有效方法。此外,隨著遠端工作在當今世界的重要性日益提高,SSH 為人們提供了一種安全可靠的方式,讓他們可以從世界任何地方遠端訪問他們的機器。

在 Ubuntu 上生成 SSH 金鑰對

SSH 金鑰是用於對遠端機器的安全連線進行身份驗證的加密安全金鑰。要在 Ubuntu 上生成 SSH 金鑰對,您可以使用名為“ssh-keygen”的命令列介面 (CLI) 工具。ssh-keygen 命令生成兩個單獨的檔案:一個私鑰和一個公鑰,這兩個金鑰都以不同的方式使用以啟用安全身份驗證。

要在 Ubuntu 上生成 SSH 金鑰對,首先透過按 Ctrl + Alt + T 開啟一個終端視窗。然後鍵入以下命令並按 Enter -

ssh-keygen 

預設情況下,ssh-keygen 會生成金鑰大小為 2048 位的私鑰和公鑰 RSA 金鑰。您還可以指定其他選項,例如 DSA 或 ECDSA 金鑰、金鑰長度的不同位大小,以及新增密碼以增強安全性。

例如,要生成 ECDSA 金鑰而不是預設的 RSA 型別,金鑰大小為 4096 位,並新增密碼以增強安全性 -

ssh-keygen -t ecdsa -b 4096 -C "my-secure-passphrase" 

輸入所需的選項後,ssh-keygen 會提示您輸入應將新 SSH 金鑰儲存到的位置。預設情況下,這些檔案將儲存在 ~/.ssh 目錄中,私鑰名為 id_rsa,公鑰名為 id_rsa.pub。

金鑰型別

根據您的需求,可以使用 ssh-keygen 生成幾種不同的 SSH 金鑰型別 -

  • RSA - 這是最常見的 SSH 金鑰型別之一。

    它使用非對稱加密方法,這意味著它允許使用獨立但數學相關的金鑰進行加密和解密。RSA 支援各種長度,包括 2048 位或 3072 位。

  • DSA - 數字簽名演算法 (DSA) 是另一種可用於 SSH 金鑰生成的非對稱加密型別。它比 RSA 快,但安全性也較低。

    DSA 金鑰通常比 RSA 金鑰短且安全性較低,它們廣泛用於美國法律體系中的數字簽名。

  • ECDSA - 橢圓曲線數字簽名演算法 (ECDSA) 是一種較新的非對稱加密型別,它比 RSA 和 DSA 金鑰都快且更安全。

它使用較小的金鑰大小來實現類似的安全級別,從而在頻寬使用方面提高效率。ECDSA 金鑰有多種大小,包括 256 位、384 位或 521 位。

新增密碼

在 Ubuntu 上生成 SSH 金鑰對時,您可以選擇向私鑰新增密碼,這可以增強安全性。密碼提供了一層額外的保護,防止未經授權訪問您的私鑰,這意味著如果有人獲得了您的私鑰檔案,除非他們也知道密碼,否則無法使用它。

要在生成 SSH 金鑰對時新增密碼,只需在 ssh-keygen 工具提示時輸入即可。或者,如果您不希望獲得此額外的保護,可以將密碼留空。

儲存金鑰

預設情況下,ssh-keygen 將公鑰和私鑰都儲存在 ~/.ssh 目錄中,預設檔名是 id_rsa: - `~/.ssh/id_rsa`:私鑰 - `~/.ssh/id_rsa.pub`:公鑰

您可以使用“-f”引數後跟自定義檔名來更改這些名稱 -

ssh-keygen -t rsa -b 4096 -C "my-secure-passphrase" -f "~/.ssh/my_key" 

這將在 .ssh 目錄下儲存兩個名為 my_key(私鑰)和 my_key.pub(公鑰)的檔案。成功生成金鑰後,下一步是將您的公鑰新增到遠端伺服器以允許安全身份驗證。

將您的公鑰新增到遠端伺服器

為什麼需要新增您的公鑰

當您生成 SSH 金鑰對時,您會建立一個私鑰和一個公鑰。私鑰應始終保持安全,並且永遠不應與任何人共享。

但是,可以將公鑰與遠端伺服器共享以驗證您的連線。當您連線到已設定為 SSH 身份驗證的伺服器時,它會要求您提供公鑰。

如果伺服器識別您的公鑰,它將允許您連線而無需輸入密碼。這種方法如此受歡迎的原因是它比傳統的密碼身份驗證提供了額外的安全層。

密碼可能會被盜或被駭客入侵,但要訪問您的私鑰檔案對某人來說要困難得多,除非他們可以物理訪問託管該檔案的裝置本身。使用 SSH 金鑰對簡化了登入遠端伺服器的過程,同時還提高了安全性。

新增公鑰的分步說明

既然我們已經討論了為什麼新增公鑰很重要,那麼讓我們看看如何使用命令列介面 (CLI) 或 FileZilla 等 GUI 工具來完成此操作 -

透過 CLI 新增公鑰

  • 透過按 Ctrl + Alt + T 在 Ubuntu 上開啟一個終端

  • 導航到您生成 SSH 金鑰的位置

  • 使用以下命令語法 -

ssh-copy-id user@remotehost

透過 FileZilla 新增公鑰

  • 開啟 FileZilla 並連線到您的遠端主機。

  • 單擊“編輯”>“設定”>“SFTP”。

  • 在“SSH 私鑰”中,單擊“新增”並瀏覽計算機上與您的公鑰匹配的私鑰檔案。

  • 單擊“確定”。

完成上述任一方法後,您現在應該能夠使用 SSH 身份驗證和您的公鑰連線到遠端伺服器。

結論

在當今世界,資料安全是每個個人和組織的關鍵方面。隨著網路攻擊和資料洩露事件數量的增加,使用強大的安全措施來保護敏感資料變得至關重要。SSH 金鑰提供了一種安全的方式來驗證您在訪問遠端伺服器或應用程式時的身份。

SSH 金鑰不依賴於可能被盜的密碼,而是使用加密演算法來確保您的裝置和遠端伺服器之間的安全通訊。SSH 金鑰是安全通訊協議不可或缺的一部分,在 Ubuntu 上生成它們既簡單又直接。

更新於: 2023-06-06

16K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.