! o. A( X# R$ c# F5 ]0 I: c9 l * q/ l; p! i: x 5 \6 s" @ I, M0 v過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。 ( ~3 A* j }; f1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。5 k' @, {/ f& `3 }8 ?9 M
2. Enter passphrase - 輸入自訂密碼。 ! _% |! ]% @7 e8 Q& [# t% o3. Enter same passphrase again - 再輸入一次自訂密碼。* O' l( j! S4 u+ p. f
! g9 k2 S' r/ W1 }& p此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。: \2 z/ G0 Z& m# d
使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。 + ~- S- H: C: u8 K
, Y. d; A! z0 s* C. z
<2> 在 Server端加入剛剛Client端產生的公鑰: c" z3 x5 Q+ N& R5 G
) q% `# ]. x% ?# Q( Q9 K8 @用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。 + d6 H! c2 A! A4 q/ l" ^. }把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。- A- Y4 S# P; }) s9 N2 v$ e
chmod 700 ~/.ssh ; {: t3 c. J& V4 c/ v* X$ ~, t把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。 ' U9 ?) g }* K3 ]2 S- t. U2 A* h
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys1 Q7 u, m- c3 N1 p
6 _8 K) p. ~' e/ @ A# A
同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。 * r( N$ T7 D* M7 ~5 Ochmod 600 ~/.ssh/authorized_keys& Z) T. z5 ^ G0 ~. \9 {: L
c$ H3 v8 e# S
6 Z: K+ O! m5 E! N4 A% B% Z
/ C: \. c$ K8 E0 J( B ?' [; M
結果:2 S' K, ~4 ^, y8 {' L Q- S
原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。 2 Y8 w j0 b9 F! X/ k( Y& p特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣* k! e0 h3 O' |' I2 E9 u5 E2 J$ B