歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix資訊

使用Unix密鑰啟用自動登錄

今天,我們來繼續學習Unix密鑰的知識。當您使用 ssh、sftp 或 scp 登錄到遠程系統後,您仍需要使用密碼才能完成登錄過程。通過創建公鑰或私鑰,將密鑰的公共部分附加到~/.ssh/authorized_keys 文件,並與遠程站點交換了有效Unix密鑰後,您可以省去提供密碼的要求並允許自動登錄。

要創建公鑰或私鑰,您需要使用 ssh-keygen 來指定Unix密鑰加密的類型。在演示中使用了 rsa 密鑰類型,但是其他密鑰類型也有效。要創建密鑰,請參見清單 11。

清單 11. 創建Unix密鑰
 

  1. $ ssh-keygen -t rsa  
  2. Generating public/private rsa key pair.  
  3. Enter file in which to save the key (/root/.ssh/id_rsa): 


 
您應輸入保存Unix密鑰(公共和私有組件)的文件的位置。使用缺省值(在主目錄中的 .ssh 目錄中)一般就可以了(請參見清單 12)。

清單 12. 提示輸入密碼
 

  1. Created directory '/root/.ssh'.  
  2. Enter passphrase (empty for no passphrase): 


如果您在此階段輸入了密碼,則會創建安全密鑰文件,但是在每次使用Unix密鑰時,還必須輸入密碼。按 Return 意味著不需要任何密碼(請參見清單13)。

清單 13. 通過按 Return 鍵跳過密碼需求
 

  1. Enter same passphrase again:   
  2. Your identification has been saved in /root/.ssh/id_rsa.  
  3. Your public key has been saved in /root/.ssh/id_rsa.pub.  
  4. The key fingerprint is:  
  5. 98:da:8d:48:a8:09:44:b1:b3:62:51:2d:a9:6b:61:ba root@remotehost  


現在已創建了公鑰 (id_rsa.pub) 和對應的私鑰 (id_rsa)。

要啟用自動登錄,您必須將公鑰的內容復制到遠程主機上 ~/.ssh 目錄中的 authorized_keys 文件中。您可以使用 SSH 自動完成此操作(請參見清單 14)。

清單 14. 啟用自動登錄
$ cat ./.ssh/id_rsa.pub | ssh mc@remotehost 'cat >> .ssh/authorized_keys';
 
還有,如果在多個主機中經常執行此操作,則可以使用小腳本或 Shell 函數來執行所有必需步驟,如清單 15 所示。

清單 15. 使用 Shell 腳本啟用自動登錄
 

  1. OLDDIR='pwd';  
  2. if [ -z "$1" ]; then  
  3. echo Need user@host info;  
  4. exit;  
  5. fi;  
  6. cd $HOME;  
  7. if [ -e "./.ssh/id_rsa.pub" ]; then  
  8. cat ./.ssh/id_rsa.pub | ssh $1 'cat >> .ssh/authorized_keys';  
  9. else  
  10. ssh-keygen -t rsa;  
  11. cat ./.ssh/id_rsa.pub | ssh $1 'cat >> .ssh/authorized_keys';  
  12. fi;  
  13. cd $OLDDIR  


您可以使用 setremotekey 腳本復制現有Unix密鑰,如果密鑰不存在,可在復制之前創建一個: $ setremotekey mc@remotehost
 
現在,每當需要使用公鑰登錄到遠程主機時,您可以結合使用個人Unix密鑰腳本和遠程主機上該用戶接受的密鑰列表。

OpenSSH 是一個重要工具,它可以保護計算機之間的通信和信息傳輸的安全。它不僅是常規工具(如 Telnet、FTP 和 RCP)的安全替代方法,而且還可以充當其他服務(如 Subversion、X Windows System 和 rsync)的傳輸協議。

本文向您介紹了啟動和運行 OpenSSH 所需的基本步驟,如何最有效地使用 OpenSSH 提供的主要工具,以及如何使用Unix密鑰交換工具來簡化登錄和連接性問題。

Copyright © Linux教程網 All Rights Reserved