我們的 Oracle 服務正在將伺服器遷移到 Oracle 雲端。我們需要更改 SFTP 存取的主機。 “如果您目前的 SSH2 金鑰是 OpenSSH 金鑰,則透過 SCP 登入名稱和 SSH2 金鑰進行的身份驗證保持不變。”
儘管遷移尚未發生,但我們能夠連接到新主機。我想確認我的金鑰對是 OpenSSH 格式。有沒有辦法做到這一點?
答案1
假設問題是關於私鑰檔案:如果可以用它對於 OpenSSHssh
和sftp
客戶端,那麼它就是「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 私鑰開頭。
幾乎總是可以使用puttygen
或ssh-keygen
命令的某種組合將密鑰從一種格式轉換為另一種格式。