有沒有辦法判斷我的金鑰對是否是 OpenSSH 金鑰對?

有沒有辦法判斷我的金鑰對是否是 OpenSSH 金鑰對?

我們的 Oracle 服務正在將伺服器遷移到 Oracle 雲端。我們需要更改 SFTP 存取的主機。 “如果您目前的 SSH2 金鑰是 OpenSSH 金鑰,則透過 SCP 登入名稱和 SSH2 金鑰進行的身份驗證保持不變。”

儘管遷移尚未發生,但我們能夠連接到新主機。我想確認我的金鑰對是 OpenSSH 格式。有沒有辦法做到這一點?

答案1

假設問題是關於私鑰檔案:如果可以用它對於 OpenSSHsshsftp客戶端,那麼它就是「OpenSSH 金鑰」——伺服器無法真正區分。

格式僅在以下情況下才重要安裝伺服器上的公鑰(即,將其添加到 OpenSSHauthorized_keys或類似的公鑰時),但從引用的訊息來看,這聽起來像是之前已經完成的(即,繼承了現有金鑰),所以這可能不是這裡關心的問題。

關鍵之間沒有太多標準化文件用於 SSH2 的格式;然而,它們的唯一區別在於「包裝」——儲存在其中的實際資料是相同的,因此完全相同的金鑰可以在 OpenSSH 和 PuTTY 以及 PKCS#8 和 SSH.COM 格式之間自由轉換。

特別是,伺服器無法知道您是否擁有「OpenSSH 金鑰」。 SSH 用戶端透過網路傳送的內容始終以標準格式發送(並且僅發送公鑰); SSH 用戶端會載入它所使用的任何金鑰檔案格式,並自動產生正確的網路格式以在驗證期間傳送到伺服器。

SSH 軟體使用的大多數金鑰格式都是基於文字的,因此您可以使用記事本打開它們:

  • ssh-XXX AAAAxxxxx...以OpenSSH 公鑰開頭的一長行。
  • -----BEGIN OPENSSH PRIVATE KEY-----以– OpenSSH 私鑰(通常稱為「新格式」或「OpenSSH 格式」)開頭。
  • -----BEGIN PRIVATE KEY-----以– PKCS#8 私鑰開頭,由較舊的 OpenSSH 版本(通常稱為「PEM 格式」或「OpenSSL 格式」)建立。
  • 以 – 也是 PKCS#8 開頭-----BEGIN ENCRYPTED PRIVATE KEY-----,但有密碼。
  • -----BEGIN RSA PRIVATE KEY-----以– PKCS#1 私鑰開頭,類似 PKCS#8 但較舊。 (通常也稱為“PEM 格式”,來自 OpenSSL。)
  • PuTTY-User-Key-File-2以– PuTTY 私鑰開頭。
  • ---- END SSH2 PUBLIC KEY ----以– SSH.COM 公鑰開頭。 (這是一個商業 SSHv2 客戶端/伺服器產品,喜歡聲稱自己是“the”SSH。)
  • ---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----以– SSH.COM 私鑰開頭。

幾乎總是可以使用puttygenssh-keygen命令的某種組合將密鑰從一種格式轉換為另一種格式。

相關內容