全部產品
Search
文件中心

Alibaba Cloud DevOps:配置 SSH 金鑰

更新時間:Aug 14, 2025

雲效代碼管理 (Codeup)的倉庫支援 HTTP(S) 和 SSH 兩種訪問協議,SSH 協議可以實現安全的免密認證,且效能比 HTTP(S) 協議更好。本文介紹如何在 Codeup 中配置和使用 SSH 金鑰進行代碼推拉。

前提條件

在使用 SSH 協議作業碼庫前,請產生並上傳您的 SSH 公開金鑰,完成 SSH 公開金鑰和雲效帳號的對應。

通過 SSH 協議訪問 Codeup,需要滿足如下條件。

  • 本機已安裝 Git並保證版本大於 1.9(通過git --version可擷取本地的版本)。

  • 本機需要安裝 OpenSSH 用戶端(GNU/Linux, macOS, 或 Windows 10 已內建 OpenSSH)。

  • SSH 盡量保持最新,6.5之前的版本由於使用 MD5 簽名,可能存在安全問題。

重要

如果您是 Windows 使用者,在使用 Git 命令時,請使用 WSL(需要Windows10或以上),或使用 Git Bash

背景資訊

Codeup 支援的 SSH 密碼編譯演算法類型如下所示:

演算法類型

公開金鑰

私密金鑰

ED25519 (推薦

id_ed25519.pub

id_ed25519

RSA (不推薦)

id_rsa.pub

id_rsa

步驟一:查看已存在的 SSH 金鑰

在產生新的 SSH 金鑰前,請先確認是否需要使用本地已產生的SSH密鑰,SSH 金鑰對一般存放在本機使用者的根目錄下。

Linux、Mac 請直接使用以下命令查看已存在的公開金鑰,Windows 使用者在 WSL(需要 windows10 或以上)或 Git Bash下使用以下命令查看已產生公開金鑰:

ED25519 演算法

cat ~/.ssh/id_ed25519.pub

RSA 演算法

cat ~/.ssh/id_rsa.pub

如果返回一長串以 ssh-ed25519 或 ssh-rsa 開頭的字串,說明已存在本地公開金鑰,您可以跳過步驟二產生 SSH 金鑰,直接操作步驟三。

步驟二:產生 SSH 金鑰

若步驟一未返回指定內容字串,表示本地暫無可用 SSH 金鑰,需要產生新的 SSH 金鑰,請按如下步驟操作:

  1. 開啟終端,運行ssh-keygen -t

  2. 輸入密鑰演算法類型和可選的注釋。注釋會出現在.pub檔案中,一般可使用郵箱作為注釋內容。

  • 基於ED25519演算法,產生金鑰組命令如下:

    ssh-keygen -t ed25519 -C "<注釋內容>"
  • 基於RSA演算法,產生金鑰組命令如下:

    ssh-keygen -t rsa -C "<注釋內容>"
  1. 單擊斷行符號,選擇 SSH 金鑰產生路徑。

  • 以 ED25519 演算法為例,預設路徑如下:

    Generating public/private ed25519 key pair.
    Enter file in which to save the key (/home/user/.ssh/id_ed25519):

    密鑰預設產生路徑:/home/user/.ssh/id_ed25519,公開金鑰與之對應為:/home/user/.ssh/id_ed25519.pub

  • 以 RSA 演算法為例,預設路徑如下:

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user/.ssh/id_rsa):

    密鑰預設產生路徑:/home/user/.ssh/id_rsa,公開金鑰與之對應為:/home/user/.ssh/id_rsa.pub

  1. 設定一個密鑰口令

    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:

    口令預設為空白,您可以選擇使用口令保護私密金鑰檔案。如果您不想在每次使用 SSH 協議訪問倉庫時,都要輸入用於保護私密金鑰檔案的口令,可以在建立密鑰時,輸入空口令。

  2. 點擊斷行符號,完成金鑰組建立。

警告

密鑰用於鑒權,請謹慎保管。公開金鑰檔案以 .pub 副檔名結尾,可以公開給其他人,而沒有 .pub 副檔名的私密金鑰檔案不要泄露給任何人!

步驟三:拷貝公開金鑰

除了在命令列列印出已產生的公開金鑰資訊手動複製外,可以使用命令將公開金鑰拷貝到粘貼板下,請參考作業系統使用以下命令進行拷貝:

Windows(WSLGit Bash):

cat ~/.ssh/id_ed25519.pub | clip

Mac:

tr -d '\n' < ~/.ssh/id_ed25519.pub | pbcopy

GNU/Linux (requires xclip):

xclip -sel clip < ~/.ssh/id_ed25519.pub

步驟四:在 Codeup 上設定公開金鑰

  1. 登入雲效,在頁面右上方單擊頭像選擇個人設定,然後選擇 SSH 公開金鑰

  2. 添加產生的 SSH 公開金鑰資訊。

  • SSH 公開金鑰內容。

    說明

    請完整拷貝本機中公開金鑰從 ssh- 開始直到郵箱為止的內容。

  • 公開金鑰標題:支援自訂公開金鑰名稱,用於區分管理。

  • 作用範圍:設定公開金鑰的作用範圍,包括讀寫或是唯讀,若設定為唯讀,該公開金鑰只能用於拉取代碼,不允許推送。

  • 到期時間:設定公開金鑰到期時間,到期後公開金鑰將自動失效,不可使用。

  1. 單擊添加儲存設定,即完成 SSH 公開金鑰的設定。

常見問題

本地存在多個密鑰時,如何根據目標平台自動選擇用於認證的密鑰?

當本地存在多個密鑰,如果不設定認證規則,本機將隨機播放一個密鑰用於認證,可能造成認證失敗。

因此,在如下情境中,需要自行定義認證密鑰的路徑:

  • 本地存在多個金鑰組應雲效的不同帳號。

  • 本地存在多個金鑰組應不同的代碼平台(GitLab,GitHub,雲效等)。

定義認證密鑰路徑規則

開啟本地終端,按如下格式編輯~/.ssh/config檔案,如 Windows 平台請使用WSL(Windows10或以上)或 Git Bash

# Codeup 樣本使用者1
HostName codeup.aliyun.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_ed25519
  
# Codeup 樣本使用者2,設定別名 codeup-user-2
Host codeup-user-2
HostName codeup.aliyun.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/codeup_user_2_ed25519

# GitLab 平台
HostName gitlab.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab_ed25519

按照上述配置,使用SSH協議訪問時,SSH 用戶端會使用檔案指定的密鑰進行認證,實現訪問不同平台或同一平台的不同帳號使用本地不同的 SSH 金鑰進行認證。

  • 訪問 Codeup ,由於 HostName 一致,使用別名進行區分使用不同的密鑰。

  • 訪問 GitLab,根據 HostName 進行區分使用不同的密鑰。

# 訪問 Codeup,將使用 ~/.ssh/id_ed25519.pub 密鑰
git clone gi*@codeup.aliyun.com:example/repo.com

# 以 codeup-user-2 別名訪問 Codeup 時,將使用 ~/.ssh/codeup_user_2_ed25519 密鑰 
git clone git@codeup-user-2:example/repo.com

# 訪問 GitLab 平台,將使用 ~/.ssh/gitlab_ed25519 密鑰
git clone gi*@gitlab.com:example/repo.com