標籤:linux securecrt putty 密鑰登入
前面介紹了linux的ssh遠程登入協議和ssh無密碼登入方式,這裡在windows下通過secureCRT和putty登入linux來看一下具體的密鑰建立,配置和登入,也算做個備忘錄吧。
1.linux下建立金鑰組
還記得前面說的怎麼建立金鑰組吧:
[[email protected] ~]$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/sshtest/.ssh/id_rsa): Created directory '/home/sshtest/.ssh'.Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sshtest/.ssh/id_rsa.Your public key has been saved in /home/sshtest/.ssh/id_rsa.pub.The key fingerprint is:22:e4:e8:60:24:b5:ac:bd:53:52:4a:b1:08:a0:e9:7b [email protected]The key's randomart image is:+--[ RSA 2048]----+|+ o ||o= + ||=.= o ||++ * ||oo= + . S ||.o.+ . . || .+E || .. || |+-----------------+
如果想登入的時候不用輸建立密鑰的密碼,那麼上面就直接斷行符號,不用輸。執行完這個過程後,我們的金鑰組就成功建立了,在.ssh這個隱藏目錄中。查看發現有兩個檔案,一個私密金鑰id_rsa,一個公開金鑰id_rsa.pub,然後我們將公開金鑰的內容輸出到一個叫authorized_keys的檔案中:
[[email protected] ~]$ cd .ssh/[[email protected] .ssh]$ lsid_rsa id_rsa.pub[[email protected] .ssh]$ cat id_rsa.pub >> authorized_keys[[email protected] .ssh]$ lsauthorized_keys id_rsa id_rsa.pub
為什麼要輸出到authorized_keys的檔案中呢,前面也說過了,因為在/etc/ssh/sshd_config檔案中配置的,預設為authorized_keys檔案,如果有很多的公開金鑰,就都輸出到這個檔案中。然後我們將私密金鑰id_rsa拷出來放在我們的windows的某個目錄中,密鑰登入的時候需要這個玩意,最後重啟sshd服務,/etc/init.d/sshd restart成功後,我們就可以在windows上通過secureCRT或者putty等軟體來登入到linux的某個使用者了,這個使用者就是authorized_keys這個檔案所在的使用者。
1).secureCRT登入
運行secureCRT軟體,輸入要登入到的主機的IP地址,port連接埠,如果沒特別設定預設為22以及要登入到使用者的使用者名稱,然後在authentication選項中只勾選PublicKey或者將PublicKey選項提到首選,再選中它點擊Properties:
在彈出的對話方塊中點擊這個按鈕選中你拷出來的私密金鑰點擊OK,然後點擊當前表單的connect按鈕:
最後會提示要輸入建立密鑰時的密碼,如果設定過:
這樣我們就可以登入到linux中指定的使用者了:
這個過程中一定要記得將.ssh目錄使用權限設定為700,將authorized_keys檔案的使用權限設定為600,不然是會報錯的:
2).putty登入
用putty就稍微麻煩了一點,需要下載一個叫puttygen的東東來轉換私密金鑰的格式,前面操作都是一樣的,建立金鑰組,然後修改許可權,將私密金鑰拷到windows的某個目錄。putty私密金鑰的格式不同,所以需要puttygen來轉換。運行puttygen軟體,點擊Load選擇拷出來的私密金鑰:
如果找不到你的私密金鑰檔案,就點擊右下角的檔案類型,選擇顯示所有檔案,因為私密金鑰檔案在linux下產生的,沒有副檔名:
選擇私密金鑰之後會提示輸入建立密鑰時設定的密碼,如果設定過:
轉換成功,接下來就需要儲存我們轉換格式後產生的私密金鑰檔案,點擊Save private key按鈕儲存:
putty的私密金鑰副檔名是.ppk,這時你發現私密金鑰檔案已經儲存成功,接下來就是使用putty密鑰登入:
運行putty軟體,左邊選擇Connection->SSH->Auth點擊Browse按鈕選擇上面轉換格式後產生的私密金鑰檔案.ppk:
然後在左邊選擇Session輸入要登入主機linux的IP和port,點open:
最後輸入要登入的使用者的使用者名稱和建立私密金鑰時設定的密碼,如果設定過:
2.windows下secureCRT和putty建立金鑰組
前面說的是在linux中建立的金鑰組,現在選擇用secureCRT和putty建立金鑰組,然後將公開金鑰上傳至主機後再通過密鑰登入。假設我們已經將公開金鑰上傳到了主機為key.pub,不能像上面直接輸出到authorized_keys,必須要轉換成openssh能識別的格式,這裡就要ssh-keygen -i -f key.pub >> authorized_keys,authorized_keys檔案必須是600的許可權,而且要存在於.ssh隱藏檔案中,如果沒有就建立,許可權為700,最後重啟sshd服務/etc/init.d/sshd restart。下面看看兩種建立金鑰組的方式和密鑰登入的方式。
1).secureCRT建立和登入
運行secureCRT軟體,和上面一樣選擇PublicKey,然後點Properties,在彈出的對話方塊中選擇Create Identity File來建立金鑰組:
然後下一步->選擇演算法DSA或者RSA再下一步->設定密鑰密碼再下一步->設定密鑰長度預設1024下一步->下一步->選擇金鑰組儲存的位置,預設為我的文件中再完成->是否上傳,選擇否。這樣金鑰組就產生了,私密金鑰為Identity,公開金鑰為Identity.pub:
將公開金鑰拷到linux主機上在我們要登入的使用者目錄中執行上面的紅色部分的操作,然後通過PublicKey指定我們產生的Identity私密金鑰檔案登入,向上面一樣。
2).putty建立和登入
putty建立金鑰組還是要靠puttygen這個軟體,運行puttygen軟體,點擊Generate按鈕,自動建立金鑰組。也可以設定密鑰的長度,預設為2048,1024要比2048的建立速度快些。建立完成後,可以看到公開金鑰的內容,然後設定密鑰密碼,分別儲存公開金鑰和私密金鑰,然後將公開金鑰上傳到主機上執行上面紅色部分操作,也可以只儲存私密金鑰然後將公開金鑰內容複寫到linux主機的authorized_keys檔案中:
最後再運行putty,指定私密金鑰登入。