備註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure 免費層。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶以及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
產生 SSH 金鑰
簡介
SSH (安全 Shell) 協定是一種將遠端登入從一部電腦保護到另一部電腦的方法。SSH 可讓安全的系統管理和檔案傳輸透過不安全的網路,使用加密來保護端點之間的連線。SSH 金鑰是安全地存取雲端中 Oracle Cloud Infrastructure 運算執行處理的重要部分。
如果您已經有 SSH 金鑰組,可以使用該組來連線至您的環境。建議您使用 Oracle Cloud Shell 與您將建立的 OCI 運算執行處理進行介面。Oracle Cloud Shell 是以瀏覽器為基礎,不需要在筆記型電腦上安裝或設定任何項目,也不需要在網路設定中獨立運作。不過,如果您偏好透過筆記型電腦連線,請根據您的組態選取選項。
重要事項:如果未正確建立 SSH 金鑰,您將無法連線至環境且會發生錯誤。請確定您已正確建立金鑰。
選項 1:Oracle Cloud Shell
請觀看下方影片以瞭解「產生 SSH 金鑰雲端 Shell」選項的簡介。
Cloud Shell 機器是執行 Bash Shell 的小型虛擬機器,您可以透過 OCI 主控台 (首頁) 存取此機器。Cloud Shell 隨附預先認證的 OCI CLI (命令行介面)、設為主控台租用戶首頁區域以及最新的工具和公用程式。若要使用 Cloud Shell 機器,您的租用戶管理員必須授予必要的 IAM (身分識別與存取管理) 原則。
-
若要啟動 Oracle Cloud Shell,請前往您的雲端主控台,然後按一下頁面右上角的雲端 Shell 圖示。
-
雲端 Shell 啟動之後,請輸入下列命令。選擇您可以記住的金鑰名稱。這將是您將用來連線至所建立之任何運算執行處理的金鑰名稱。若不要輸入密碼詞組,請按 Enter 鍵兩次。
mkdir .ssh cd .ssh ssh-keygen -b 2048 -t rsa -f <<sshkeyname>>
注意:角括弧«»不應出現在您的程式碼中。
-
檢查您剛才建立的兩個檔案。
ls
請注意,輸出中有兩個檔案,私密金鑰:<<
<<sshkeyname>>
和公用金鑰:<<<<sshkeyname>>.pub
。保持私密金鑰安全,且不與任何人共用其內容。各種活動將需要公開金鑰,並可上傳至特定系統,以及複製並貼上以促進雲端中的安全通訊。 -
若要列出公開金鑰的內容,請使用 cat 指令
cat <<sshkeyname>>.pub
注意:角括弧«»不應出現在您的程式碼中。
-
將金鑰貼到未來實驗室的運算執行處理時,請確定移除複製時可能新增的所有硬退貨。.pub 索引鍵應該是一行。
選項 2:MacOS
請觀看下方影片以瞭解「產生 SSH 金鑰 Mac」選項的簡介。
-
如果您還沒有 MacOS 終端機應用程式的捷徑,可以在鍵盤上的 [ Applications ](應用程式)> [ Utilities ](公用程式) 功能表或 (Shift+Command+U) 中找到該捷徑。
-
啟動Terminal並鍵入
ssh-keygen
指令。ssh-keygen會要求您儲存金鑰的位置,按Enter鍵接受您本位目錄中.ssh資料夾的預設值。檔案名稱將是id_rsa
或您選擇用來命名金鑰的任何名稱。若不要輸入密碼詞組,請按 Enter 鍵兩次。請記住儲存金鑰的目錄 (~/.ssh),當您稍後建立執行處理時,將需要參照該目錄。ssh-keygen
-
在終端機視窗中輸入下列命令以驗證是否已建立公開金鑰和私密金鑰,以及複製公開金鑰的內容以在 OCI 對話方塊中建立執行處理時使用。
cd .ssh ls cat id_rsa.pub
請注意,輸出中有兩個檔案,私密金鑰:
id_rsa
和公用金鑰:id_rsa.pub
。保持私密金鑰安全,且不與任何人共用其內容。各種活動將需要公開金鑰,並可上傳至特定系統,以及複製並貼上以促進雲端中的安全通訊。 -
如果您準備好建立執行處理,請複製內容並在提示輸入 SSH 金鑰時貼上。請確定移除複製時可能新增的任何硬退貨。
選項 3:Windows 10
請觀看下方影片以瞭解「產生 SSH 金鑰 Windows」選項的簡介。
建立 Windows 的金鑰可能會有趣,因為在 Windows 10 版本之前,ssh-keygen
不是 Windows 的原生公用程式。而且未包括在起始的 Windows 10 組建中。
-
按一下 Windows 10 系統的圖示/影像分割,或在「開始」列中的搜尋欄位中輸入‘powershell’,以開啟 Windows 10 系統上的 Powershell 命令視窗。
-
在終端機視窗中輸入
ssh-keygen
命令。請特別注意檔案的儲存位置,以便您稍後可以找到該檔案。ssh-keygen
將預設為使用者基本目錄下的標準.ssh 目錄。ssh-keygen
-
按所有提示中的 Enter 鍵接受預設位置、預設檔案名稱,以及不接受密碼詞組。
注意:在 Unix 變異中,通常會為組態檔指定一個內含點 (.) 的資料夾,而在一般檢視中則指定為「隱藏」。不過,點 (.) 並不代表 Windows 資料夾前面的任何特殊項目。因此資料夾會存在,但不會隱藏。
-
確認您的金鑰存在且已正確建立。在 Powershell 視窗中輸入下列命令。
cd .ssh ls cat id_rsa.pub
您現在已經有使用中的 SSH 金鑰組,可以使用它來與雲端中的執行處理進行安全通訊。除非您瞭解執行的作業,否則請勿與任何人共用私密金鑰
id_rsa
。您只需共用及複製公開金鑰id_rsa.pub
即可。 -
另請注意,如果您選擇將金鑰的內容複製/貼到實驗室的某些對話方塊中,您將需要透過 Powershell、Explorer 或其他目錄工具在 Windows 中尋找檔案,然後開啟公開金鑰檔案來複製其內容。下方範例使用 Powershell 來
cat
內容。您可以使用滑鼠選取文字,但無法使用複製/貼上命令。使用<<ctrl-c>
將內容複製到剪貼簿,以貼到其他應用程式對話方塊。或者,您也可以使用記事本、Wordpad 或其他文字編輯器來開啟檔案。
注意:請勿使用 MS Word 或任何其他 Rich Text 編輯器,因為它們可能會新增可轉換金鑰的額外格式字元。
選項 4:先前 Windows 版本
使用 Git
在舊版的 Windows 中,ssh-keygen 不是原生公用程式,因此必須使用第三方公用程式。本節將說明如何使用 Git for Windows。Git for Windows 包含稱為 Git Bash
的 Unix Shell,這是您將用來建立金鑰以及與雲端主機系統建立 SSH 通訊的內容。如果您偏好使用 PuTTY,請移至下一節。
-
如果您尚未安裝,請存取下方連結並下載應用程式。如果您因權限問題而無法在筆記型電腦上安裝任何項目,請使用上述 Oracle Cloud Shell 選項。
-
遵循安裝的指示。
注意:安裝 Git for Windows 超出此實驗室的範圍。
-
安裝完畢之後,您應該會在 Git 的 Windows「開始」功能表中有一個應包含 Git Bash 命令的項目。按一下 Git Bash 命令。
-
在終端機視窗中輸入
ssh-keygen
。按 Enter 鍵接受預設位置 (~/.ssh) 和預設檔案名稱 (id_rsa),並再度接受<<Enter>
兩次,不使用密碼詞組。ssh-keygen
注意:此處的部分是 Git Bash 使用模擬的 Unix 本位目錄。若要檢視、擷取或複製您的金鑰,您必須導覽至 Windows 目錄結構。
-
首先,瀏覽根 C:directory 中的‘up’。
cd c:
然後將‘down’瀏覽至您一般本位目錄中的.ssh 資料夾。
cd Users/<your home folder name>/.ssh/
注意:角括弧< >不應出現在程式碼中。
ls
請注意,輸出中有兩個檔案,私密金鑰:
id_rsa
和公用金鑰:id_rsa.pub
。保持私密金鑰安全,且不與任何人共用其內容。各種活動將需要公開金鑰,並可上傳至特定系統,以及複製並貼上以促進雲端中的安全通訊。 -
記下 SSH 公開金鑰檔案與私密金鑰檔案所在的位置。系統可能會要求您上傳檔案,或在 Oracle Cloud Services 的其他實驗室中複製/貼上內容。複製金鑰內容,在金鑰字元之後擷取空格可能會造成金鑰無效。在下面的範例中,您可以使用 gitbash
cat
命令來顯示公開金鑰檔案內容。您可以選取金鑰檔案內容,然後按一下滑鼠右鍵以複製金鑰。或者,您可以直接上傳檔案。注意:如果您已經安裝 Git for Windows,請勿與 PuTTY 機器人搭配使用。這是您選擇使用哪個公用程式來產生金鑰和終端機存取。
使用 PuTTY
在舊版的 Windows 中,ssh-keygen 不是原生公用程式,因此必須使用第三方公用程式。本節將說明如何使用 PuTTY。如果您偏好使用 Git for Windows,請瀏覽此版本之前的選項。
-
如果您尚未安裝,請存取下方連結並下載應用程式。對於 Oracle 員工,PuTTY 也可透過 MyDesktop 應用程式內部下載。對於非 Oracle 員工與客戶,請使用下方連結。如果您因權限問題而無法在筆記型電腦上安裝任何項目,請使用上述 Oracle Cloud Shell 選項。
-
遵循安裝的指示。
注意:安裝 PuTTY 超出此實驗室文件的範圍。
安裝之後,Windows 的「開始」功能表中應該會有一個項目,也可能是 PuTTY 的桌面捷徑。PuTTY 實際上是一套安全通訊公用程式。我們將使用這兩種方法:終端機存取的 PuTTY 公用程式,以及用來產生安全 SSH 金鑰的 PuTTYgen 公用程式。
-
開啟 Windows 的開始功能表,然後瀏覽至 PuTTY 資料夾。選取 PuTTYgen 公用程式。
-
確定已選取預設值,而且金鑰類型必須是 2048 位元設定的 RSA。按一下產生按鈕。
-
依照指示,將滑鼠移至空白的灰色區域周圍以產生隨機資訊。PuTTY 正在使用該資訊來產生隨機安全的 SSH 金鑰。
-
在下方畫面中,PuTTY 已取得您的滑鼠資訊並建立金鑰。我們需要在這裡執行與其他索引鍵產生方法稍有不同的動作。雖然我們實際上無法使用 OCI 執行處理的檔案,但仍將儲存金鑰以供日後參照。按一下儲存公開金鑰按鈕。
注意:PuTTY 不會以 OpenSSH 相容格式儲存金鑰。因此,如果您使用 OpenSSH 將使用 PuTTY 建立的公開金鑰檔案上傳至 Linux/Unix 系統,將無法正確讀取該金鑰。不過,直接從 PuTTYgen 應用程式複製主要資訊時,當貼到使用該資訊來建立適當 OpenSSH 相容索引鍵的欄位中時,主要資訊本身會正常運作。例如,在 OCI 上建立執行處理時,您可以從 PuTTY 貼上 SSH 金鑰,而且可以正常運作。
-
在另存公開金鑰:對話方塊中,命名您的金鑰並將
.pub
副檔名新增至檔案名稱。如果您將檔案儲存在 Windows 使用者名稱/資料夾結構底下的通用.ssh
資料夾中,這也十分有用。在此範例中,可存取金鑰檔案C:\Users\<username>\.ssh
目錄。將金鑰儲存在此處以方便日後參考。 -
接著,您需要儲存私密金鑰。按一下儲存私密金鑰按鈕,對不使用密碼詞組儲存的警告回答是。
-
命名金鑰並驗證它是以
.ppk
副檔名儲存,以將檔案識別為私密金鑰檔案。請勿與任何人共用您的私密金鑰。 -
現在您已儲存金鑰以供日後參考,您必須從 PuTTY 對話方塊複製金鑰資訊。
-
從開頭到結尾選取對話方塊中的關鍵字文字,然後按一下滑鼠右鍵並選擇複製。接著,您可以將金鑰貼到記事本中,或直接貼到 OCI 主控台的執行處理建立對話方塊中。
-
下方是 OCI 執行處理建立表單中「新增 SSH 金鑰-貼上 SSH 金鑰」對話方塊的範例。
這會結束使用 PuTTY 的段落,為 Windows 10 之前的 Windows 版本產生 SSH 金鑰組。
請按照下列指示,使用 PuTTY 終端機透過 SSH 連線至雲端執行處理。
使用 PuTTY 連線至執行處理
-
從 Windows 開始功能表開啟 PuTTY 公用程式。在對話方塊中,輸入 OCI 運算執行處理的 IP 位址。您可以從 OCI 主控台>運算>執行處理>執行處理詳細資訊畫面取得此資訊。
-
在類別下,選取連線,然後選擇資料欄位。輸入指定之執行處理的使用者名稱。OCI 執行處理將預設為使用者名稱
opc
。輸入opc
。 -
在類別底下,瀏覽至連線- SSH,然後選擇認證類別。按一下瀏覽按鈕,然後找出您在先前步驟中建立的
private key file
。按一下開啟按鈕,即可起始與雲端執行處理的 SSH 連線。 -
按一下是,即可略過與未快取之金鑰相關的「安全警示」。
-
連線成功。您現在已安全地連線至 OCI 雲端執行處理。
您現在可以使用 PuTTY 終端機公用程式安全地連線。您可以儲存連線資訊供日後使用,並使用您自己的自訂設定值設定 PuTTY。
注意:如果您已經安裝 PuTTY,請勿將 Git for Windows 機器人安裝。這是您選擇用來產生金鑰和終端機存取。
選項 5:Linux 的 SSH 金鑰
-
開啟終端機視窗,然後輸入
ssh-keygen
命令。ssh-keygen 公用程式有一些命令行選項;不過,若要快速建立和修改金鑰以供實驗室使用,則不需要任何選項。在終端機視窗中輸入ssh-keygen --help
以查看所有可能的選項。現在,只需自行執行命令即可。ssh-keygen
-
您應該從您的本位目錄執行此命令。此例中為使用者 ID
opc
。此對話方塊預設為隱藏目錄~/.ssh
。如果您尚未建立金鑰,請按 Enter 鍵接受預設檔案名稱id_rsa
。再按 Enter 鍵兩次,即可建立不含密碼詞組的金鑰。生產環境中的最佳作法是使用安全密碼詞組;不過,我們不需要機器人搭配這些課堂練習實驗室。此對話方塊將指示金鑰組已儲存在
/home/username/.ssh
目錄中,並可供使用。 -
變更至
.ssh
目錄,列出並檢查您的金鑰。cd .ssh ls
請注意,輸出中有兩個檔案,私密金鑰:
id_rsa
和公用金鑰:id_rsa.pub
。保護私密金鑰安全,且不與任何人共用其內容。各種活動將需要公開金鑰,並可上傳至特定系統,以及複製並貼上以促進雲端中的安全通訊。 -
使用 Linux
cat
命令列出id_rsa.pub
的內容。cat id_rsa.pub
-
在某些實驗室中,系統會要求您將公開金鑰上傳或複製 (rcp) 至執行處理,以便於通訊。因此請記住檔案的保留位置。其他實驗室會要求將金鑰的「內容」貼到各種對話方塊中,以協助安全連線。使用
cat
命令,並從開頭為“ssh-rsa”的金鑰複製/貼上資訊,然後將所有內容複製到行中的最後一個字元。在下面的範例中,您將從“ssh-rsa…“複製到“…-01”之後。複製金鑰內容,在金鑰字元之後擷取空格可能會導致金鑰無效。您已經建立一個公用/私密 SSH 金鑰組,並且可以將它用於任何需要 SSH 金鑰的 Oracle OCI 實驗室中。
若您感興趣,請按一下此處以瞭解有關 SSH 的詳細資訊,這是從 Linux 執行處理起始與剛才建立之 SSH 金鑰連線的簡短教學課程。
致謝
- 作者- Dan Kingsley (OSPA 啟用專家)
- 協助者- Anil Nair、Kamryn Vinson、Tom Malcolm、Tom McGinn
其他學習資源
探索 docs.oracle.com/learn 的其他實驗室,或存取更多 Oracle Learning YouTube 頻道的免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請瀏覽 Oracle Help Center。