在使用不同密鑰格式的伺服器間實現公開金鑰認證登陸

來源:互聯網
上載者:User

一直以來都是使用OpenSSH,其密鑰格式是使用的自己的OpenSSH格式,公開金鑰認證登陸的方式非常簡單,下面會直接舉例說明,原理性的東西大家google去搜尋。還有一些密鑰是使用IETF SECSH格式的,這個應該是延續早期SSH版本的密鑰形式。

環境:
機器A:使用OpenSSH
機器B:使用OpenSSH
機器C:使用ssh2 (具體是SSH Secure Shell 3.2.9.1 (non-commercial version)
機器D:使用ssh2

情景1:從機器A 登陸到 機器B
機器A上產生公開金鑰和私密金鑰:先到使用者目錄下,# ssh-keygen -t rsa,不想用密碼就直接一路斷行符號。
機器A的使用者目錄下回產生一個目錄.ssh/,裡面有id_rsa(私密金鑰檔案)和 id_rsa.pub (公開金鑰檔案)
把id_rsa.pub的內容放到機器B的使用者目錄的~/.ssh/authorized_keys裡(沒有.ssh目錄就mkdir一個)。
這時,從機器A使用ssh登陸到機器B是不要求輸入密碼的。

情景2:從機器C 登陸到 機器D
機器C上使用的ssh2用的密鑰格式是IETF SECSH。
機器C上產生公開金鑰和私密金鑰:先到使用者目錄下,# ssh-keygen2 -t rsa,同上。
機器C的使用者目錄下回產生一個目錄.ssh2/,裡面有id_rsa_2048_a(私密金鑰檔案)和 id_rsa_2048_a.pub (公開金鑰檔案)
在.ssh/ 建立檔案identification內容為“IdKey id_rsa_2048_a”,這個意思貌似是聲明一下私密金鑰是id_rsa_2048_a。
登陸機器D,在使用者目錄下建立.ssh目錄,建立檔案authorization,內容為“Key xxx.pub”(多機器認證是可以寫多行的),xxx.pub(xxx自己定義)在同樣的目錄下,內容和機器C上產生的公開金鑰id_rsa_2048_a.pub相同。
這時,從機器C使用ssh登陸到機器D是不要求輸入密碼的。

情景3:從機器A 登陸到 機器C
機器A(OpenSSH格式)和機器C(IETF SECSH格式)使用的不同版本的密鑰格式。
這裡我們需要用機器A的私密金鑰產生IETF SECSH格式的公開金鑰,而不是直接使用id_rsa.pub。
在機器A上,# ssh-keygen -e -f ~/.ssh/id_rsa,這時候會產生IETF SECSH格式的公開金鑰內容,把內容放到機器C的~/.ssh/xxx.pub(xxx自己定義名字)裡,然後建立檔案authorization,內容為“Key xxx.pub”。
這時,從機器A使用ssh登陸到機器C是不要求輸入密碼的。

其他情況相信你瞭解原理之後也很容易實現,去試試吧。

小知識點:
ssh-keygen -e -f ~/.ssh/id_rsa 把 OpenSSH 格式的密鑰轉化成 IETF SECSH 格式的
ssh-keygen -i -f ~/.ssh/id_rsa 把 IETF SECSH 格式的密鑰轉化成 OpenSSH key 格式的

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.