用SSH KEY遠端登入

jackie_gnu發表於2011-11-10
 

1.Publick Key認證簡介

Public Key認證的主要魅力在於認證時承諾不必提供密碼就能夠同遠端系統建立連線。Public Key認證的基礎在於一對金鑰,public key 和private key,public key對資料進行加密而且只能用於加密,private key只能對所匹配的public key加密過的資料進行解密。

我們把public key放在遠端系統合適的位置,然後從本地開始進行ssh連線。此時,遠端的sshd會產生一個隨機數並用我們產生的public key進行加密後發給本地,本地會用private key進行解密並把這個隨機數發回給遠端系統。最後,遠端系統的sshd會得出結論我們擁有匹配的private key允許我們登入。
 

製造金鑰用putty套裝的puttygen來產生金鑰。金鑰的型別建議選擇SSH2 RSA,因為用的最為廣泛,大多數server支援。金鑰的位數選擇1024對大多數使用者已經足夠,除非你覺得還是不安全。然後點選"Generator",此時金鑰生成當然也有幾個選項出現。如果你有不止一個key,你可以在“Key comment”作註釋用於區別其他的key。 “Key passphrase“和“Confirm passphrase“用於對硬碟上的key進行加密,如過你自己一個人用機器覺得安全有保障的話可以讓它們為空。然後儲存兩個key。不要關掉puttygen,它還有用呢。

輸送public key到遠端系統在遠端系統自己的目錄下建立目錄".ssh",然後進入目錄建立一個新檔案authorized_keys ,然後把puttygen中"Public key for pasting into authorized_keys file"貼上於authorized_keys這個檔案中。然後執行以下命令:

chmod 700 $HOME/.ssh chmod 600

$HOME/.ssh/authorized_keys chmod g-w $HOME $HOME/.ssh

$HOME/.ssh/authorized_keys

測試執行putty,建立一個session命名為ssh,設定ip,協議設為ssh,Connection設定ssh的 auth中,private key的檔案選擇為puttygen產生的金鑰。連線開始後,要求輸入username,遠端系統開始public key認證,如果金鑰有passphrase 則需要輸入,否則直接就登入了。

2.

如果是linux,也可以用openssh自帶的金鑰產生工具:ssh-keygen

ssh-keygen -t rsa  ???

ssh-keygen -d #生成公鑰和私鑰,此過程可以選擇輸入私鑰密碼

cat .ssh/id_dsa.pub | ssh user@remote “cat - >>.ssh/authorized_keys” #將公鑰寫到伺服器

ssh-agent $SHELL

ssh-add

如果你設了私鑰密碼,此時輸入你的私鑰密碼。

 

本篇文章來源於 Linux公社網站(www.linuxidc.com)  原文連結:http://www.linuxidc.com/Linux/2007-12/9552.htm

相關文章