Linux防健忘日誌No.52-Ubuntu 11.04 SSH 使用RSA公鑰技術登入
以往由SSH CLIENT端到SERVER端都需要打密碼
雖然最近換了XSHELL,很方便會幫你自動KEY密碼
但前幾天閒暇之餘還是跟竹竿格格請教了一下RSA認證
敘述一下CLIENT端跟SERVER端在RSA交涉的一個流程
首先是CLIENT端要產生私鑰跟公鑰,公鑰要上傳給SERVER,而私鑰要自己好好保存,不能讓其內容外流
然後SERVER接收到公鑰之後會交由SERVER管理員審核是否允許此交涉要求
如果接受,就會將此公鑰納入SV端
之後就可以自動驗證進行登入
接下來開始實作
先示範Linux Client連Linux Server的做法:
1.CLIENT端產生RSA公私鑰
ssh-keygen -t rsa
接著會在$HOME/.ssh下產生兩個檔案
分別是id_rsa跟id_rsa.pub
有.pub的顧名思義為public,是公鑰的意思,將其上傳到SV端,對應使用者的.ssh目錄底下(例如今天要利用RSA連到thkaw使用者,就是放在/home/thkaw/.ssh底下)
建議實務在上傳公鑰的時候,最好把id_rsa.pub改個名稱(ex:tempkey.pub),以免覆蓋到sv端底下那方可能已經產生的私鑰跟公鑰
並且要由SV端的管理者將其導入authorized_keys(注意名稱!!!)
cat tempkey.pub >> authorized_keys //(這條指令是在SV上處理)
之後如果有其他CLIENT端的公鑰(例如kevintempkey.pub)要加進來,可以在用cat kevintempkey.pub >> authorized_keys附加在authorized_keys
接著Client端要連到SV就打入ssh [email protected]
如果你上面步驟都有做對,那就會跳出認證接受訊息,yes下去就可以直接登入成功了
如果失敗,就會直接叫你打密碼…
請回頭注意是否有打錯或少做的,注意私鑰權限要在600才ok
Windows上的SSH CLIENT連去的話,就要看是用甚麼CLIENT端軟體
XSHELL的話直接產生公鑰,丟到SV裡面去就可以直接連了(私鑰在軟體裡面會自動加密,不會像PUTTY另外存)
就是這麼簡單~~…另外還有一個非正規的作法
是sv端產生id_rsa(他自己的私鑰)
丟給client端,直接讓client端連
但這樣不正規且危險…,這個非正規作法在CentOS無法這麼做,Debian可以(但還是不建議這樣)
thx for:
竹竿格格
(thunb up)
版主回覆:(11/29/2011 08:07:33 AM)
打太快,是thunb"s" up…
版主回覆:(11/29/2011 08:07:33 AM)