Linux SSH使用公開金鑰私密金鑰實現免登陸 以及 登陸失敗、公開金鑰失效的處理

來源:互聯網
上載者:User

=====================同級參考資料:

《linux--私密金鑰登陸》http://mengsir.blog.51cto.com/2992083/908342

寫shell免不了要遠程執行shell命令,自然就要實現免登陸。免登陸的原理:

============================   
  1. 首先說明一下處理機制:  
  2. 1.非對稱金鑰就是一對密鑰-公開金鑰和私密金鑰。  
  3. 2.私密金鑰由系統中沒個人自己持有,一般儲存在自己的電腦裡或u盤裡。  
  4. 3.公開金鑰則在網路上傳遞,就是可以傳遞給通訊中的對方,也就意味這可以被駭客截獲。  
  5. 4.用某個人的私密金鑰加密的資料只有用那個人的公開金鑰解密,同樣用公開金鑰加密的資料也只有用私密金鑰解密。  
  6.  
  7. 這樣我們在資訊處理中的應用一般的流程可以是這樣:  
  8. 假設我們有兩個訊息方a和b  
  9. 1.a要b發訊息,首先得到或者由b傳遞給a一個b的公開金鑰。  
  10. 2.然後a用b的公開金鑰加密訊息然後傳遞給b。  
  11. 3.b用自己的私密金鑰解密訊息得到明文。  
 首先說明一下處理機制:   1.非對稱金鑰就是一對密鑰-公開金鑰和私密金鑰。   2.私密金鑰由系統中沒個人自己持有,一般儲存在自己的電腦裡或u盤裡。   3.公開金鑰則在網路上傳遞,就是可以傳遞給通訊中的對方,也就意味這可以被駭客截獲。   4.用某個人的私密金鑰加密的資料只有用那個人的公開金鑰解密,同樣用公開金鑰加密的資料也只有用私密金鑰解密。   這樣我們在資訊處理中的應用一般的流程可以是這樣:   假設我們有兩個訊息方a和b   1.a要b發訊息,首先得到或者由b傳遞給a一個b的公開金鑰。   2.然後a用b的公開金鑰加密訊息然後傳遞給b。   3.b用自己的私密金鑰解密訊息得到明文。 

以上來自:http://blog.163.com/hbu_lijian/blog/static/126129153200910333623799/

 

 

公開金鑰和私密金鑰(我是文盲,鑰字之前都是讀yao,這是多音字這裡應該念yue),是成對出現的,一旦任何一個做了更改都會驗證失敗。

 

1.免登陸的實現:

 

使用下例中ssky-keygen和ssh-copy-id,僅需通過3個步驟的簡單設定而無需輸入密碼就能登入遠程Linux主機。  ssh-keygen 建立公開金鑰和密鑰。  ssh-copy-id 把本地主機的公開金鑰複製到遠程主機的authorized_keys檔案上。 ssh-copy-id 也會給遠程主機的使用者主目錄(home)和~/.ssh, 和~/.ssh/authorized_keys設定合適的許可權 。
步驟1: 用 ssh-key-gen 在本地主機上建立公開金鑰和密鑰

ligh@local-host$ ssh-keygen-t rsa Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]  Enter passphrase (empty for no passphrase): [Press enter key] Enter same passphrase again: [Pess enter key] Your identification has been saved in/home/jsmith/.ssh/id_rsa. Your public key has been saved in/home/jsmith/.ssh/id_rsa.pub.  The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9  ligh@local-host

步驟2: 用 ssh-copy-id 把公開金鑰複製到遠程主機上

ligh@local-host$ ssh-copy-id-i ~/.ssh/id_rsa.pub root@192.168.0.3 ligh@remote-host‘s password: Now try logging into the machine, with ―ssh ?remote-host‘‖,and check in:  .ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.

[注: ssh-copy-id 把密鑰追加到遠程主機的 .ssh/authorized_key 上.]
步驟3: 直接登入遠程主機

ligh@local-host$ ssh remote-host  Last login: Sun Nov 16 17:22:332008 from 192.168.1.2 

[注: SSH 不會詢問密碼.]  ligh@remote-host$  [注: 你現在已經登入到了遠程主機上]

 

 

2.登陸失效、公開金鑰失效的情況

之前沒有用ssh-copy-id複製公開金鑰到遠程機器上,而是用scp拷貝之後再手動加入到authorized_keys。

但是某一天這種做法忽然失效了。。。暫時也沒找到原因。但是後來後來重建密鑰,然後使用ssh-copy-id解決了問題。

注意重建密鑰之後之前設定的免登陸slave端都要重新拷貝公開金鑰。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.