使用者和服務帳戶可以使用 SSH 公開金鑰,向 Secure Source Manager 存放區進行驗證。本頁說明如何產生 SSH 金鑰組,然後在 Secure Source Manager 網頁介面中新增為驗證方法。
Secure Source Manager 支援 RSA、ECDSA 和 Ed25519 SSH 金鑰類型。
必要的角色
如要取得使用 SSH 公開金鑰進行驗證所需的權限,請要求管理員授予下列 IAM 角色:
-
如要為使用者新增安全殼層金鑰:
Secure Source Manager 執行個體存取者 (
roles/securesourcemanager.instanceAccessor) 在 Secure Source Manager 執行個體上 -
如要為服務帳戶新增 SSH 金鑰,請按照下列步驟操作:
-
Secure Source Manager 執行個體上的 Secure Source Manager 執行個體管理員 (
roles/securesourcemanager.instanceManager) -
服務帳戶使用者 (
roles/iam.serviceAccountUser) 服務帳戶
-
Secure Source Manager 執行個體上的 Secure Source Manager 執行個體管理員 (
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備使用 SSH 公開金鑰驗證所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要使用安全殼層公開金鑰進行驗證,必須具備下列權限:
-
在 Secure Source Manager 執行個體上securesourcemanager.sshkeys.createAny -
如要將 SSH 金鑰指派給服務帳戶:
服務帳戶iam.serviceAccounts.actAs
如要瞭解如何授予 Secure Source Manager 角色,請參閱「使用 IAM 控管存取權」和「授予使用者執行個體存取權」。
產生金鑰組
SSH 金鑰組包含本機系統上的私密金鑰,以及您透過 Google Cloud註冊的公開金鑰。
Linux 或 macOS
在本機系統上安裝 OpenSSH。
在命令提示字元中,輸入下列指令:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"其中:
- USER_EMAIL 是你的電子郵件地址。
- KEY_TYPE 是
rsa、ecdsa或ed25519。
例如:
ssh-keygen -t rsa -C "user@example.com"系統提示時,請輸入公開金鑰檔案的位置和檔案名稱。 如要接受預設位置和檔案名稱,請按 Enter 鍵。
系統提示時,請將通關密語留空,然後按 Enter 鍵。
Windows
如果沒有,請在本機系統上安裝 OpenSSH 用戶端 (Windows 10 以上版本內建) 和 Git for Windows。下列操作說明使用 OpenSSH 和 Git for Windows。
在 PowerShell 或命令提示字元中,執行下列指令:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"其中:
- USER_EMAIL 是你的電子郵件地址。
- KEY_TYPE 是
rsa、ecdsa或ed25519。
例如:
ssh-keygen -t rsa -C "user@example.com"系統提示時,請輸入公開金鑰檔案的位置和檔案名稱。 如要接受預設位置和檔案名稱 (`%USERPROFILE%.ssh`),請按 Enter 鍵。
系統提示時,請將通關密語留空,然後按 Enter 鍵。
將安全殼層金鑰新增至安全殼層代理程式
如要使用產生的安全殼層金鑰組,請將金鑰新增至安全殼層代理程式。如果沒有將金鑰儲存在預設位置,請將金鑰新增至 SSH 代理程式,協助 SSH 找出金鑰。
Linux 或 macOS
在背景中啟動
ssh-agent:eval "$(ssh-agent -s)"指令會傳回代理程式程序 ID (PID),例如:
Agent pid 3245視環境而定,您可能需要使用其他指令,例如:
- 如要使用根存取權,請在啟動
ssh-agent前執行sudo -s -H。 - 如要直接執行
ssh-agent,請使用exec ssh-agent bash或exec ssh-agent zsh。
- 如要使用根存取權,請在啟動
將安全殼層私密金鑰新增至
ssh-agent。ssh-add ~/.ssh/FILENAME其中
FILENAME是私密金鑰檔案的名稱,例如id_rsa或id_ed25519。
Windows
開始
ssh-agent。如果您使用 Git Bash,請啟動
ssh-agent:eval "$(ssh-agent -s)"如果您使用 PowerShell 或命令提示字元,請啟動
ssh-agent服務。在 PowerShell 中執行下列指令:Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
將安全殼層私密金鑰新增至
ssh-agent。如果您使用 Git Bash:
ssh-add ~/.ssh/FILENAME如果您使用 PowerShell 或命令提示字元:
ssh-add $env:USERPROFILE\.ssh\FILENAME
其中
FILENAME是私密金鑰檔案的名稱,例如id_rsa或id_ed25519。
為使用者新增安全殼層金鑰
- 在 Secure Source Manager 網頁介面中,按一下執行個體或存放區頁面的「更多選項」選單。
按一下「使用者 SSH 金鑰」。
「使用者 SSH 金鑰」頁面隨即開啟,並顯示您建立的所有現有金鑰清單。
在「使用者 SSH 金鑰」頁面中,按一下「新增金鑰」。
在「新增 SSH 金鑰」頁面中,輸入金鑰的下列值:
- 標題:為金鑰新增描述性標題。
安全殼層公開金鑰:貼上公開金鑰字串。如要取得公開金鑰字串,請在文字編輯器中開啟公開金鑰檔案 (
FILENAME.pub),或執行下列任一指令:Linux 或 macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pub將
FILENAME替換為金鑰檔案的名稱。
只要您擁有存放區的必要權限,就能使用 SSH 金鑰向任何 Secure Source Manager 存放區進行驗證。
為服務帳戶新增 SSH 金鑰
如要透過程式存取存放區,可以為服務帳戶新增 SSH 金鑰。
- 如果您沒有要使用的服務帳戶,請建立服務帳戶。
- 在 Secure Source Manager 網頁介面中,按一下「更多選項」選單。
- 按一下「服務帳戶 SSH 金鑰」。系統會開啟「服務帳戶 SSH 金鑰」頁面,並顯示您新增的現有金鑰清單。
- 在「服務帳戶 SSH 金鑰」頁面中,按一下「新增金鑰」。
在「Add service account SSH key」(新增服務帳戶 SSH 金鑰) 頁面中,輸入金鑰的下列值:
- 名稱:索引鍵的說明標題
服務帳戶:要使用 SSH 金鑰的服務帳戶電子郵件,格式為
SA_NAME@PROJECT_ID.iam.gserviceaccount.com地點
SA_NAME是服務帳戶名稱。PROJECT_ID是建立服務帳戶的專案 ID。
安全殼層公開金鑰:您的公開安全殼層金鑰。如要瞭解如何產生安全殼層 (SSH) 金鑰組,請參閱「產生金鑰組」。
如果服務帳戶與 Secure Source Manager 執行個體不在同一個專案中,請將下列其中一個角色或權限授予 Secure Source Manager 的服務代理程式,以便使用服務帳戶:
iam.serviceAccounts.signJwt權限- 服務帳戶憑證建立者 (
roles/iam.serviceAccountTokenCreator) 角色
執行下列指令,將 IAM 政策新增至 Secure Source Manager 服務帳戶,並授予服務帳戶憑證建立者角色。
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \ --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"其中 SERVICE_ACCOUNT 是您要使用的服務帳戶,INSTANCE_PROJECT_NUMBER 則是 Secure Source Manager 執行個體的專案編號。
SERVICE_ACCOUNT 的格式應為數字服務帳戶 ID 或電子郵件地址,例如:123456789876543212345 或 my-iam-account@somedomain.com。