tid=88071& 本帖最後由 IT_man 於 2018-9-13 18:28 編輯
' p2 w6 K0 p! p) j
, ~1 H. g; H: e1 H& O' c3 @1 C本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:$ n, R) R8 a" x( O
2 V; w0 }2 F: N; K! Q% c
<1> 在Client端產生Client金鑰:
/ q; O5 ^% @' t8 Q3 S5 R) Q0 F# c3 c/ C1 i9 U
假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。! o5 G) h( G; L$ S( j& B$ c8 m5 q
再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 :, M: t! Y& }% m
4 k/ ?+ D7 Y, M
. O7 S9 ~ A+ k) c
% [7 J' F `) I" @
+ y% z( i6 p% K9 U" R
過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。
& j3 O7 o, [( @$ C6 s' ?+ q8 \1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。
) w& j6 F+ v& w! e8 g# y2. Enter passphrase - 輸入自訂密碼。. r2 K1 S0 K$ I* D, n3 `& m5 Z/ f
3. Enter same passphrase again - 再輸入一次自訂密碼。
1 L9 n/ S t/ d+ k) h+ A) X S9 F; ?% U6 n. E; s. }* }6 y
此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。6 K4 t: y* m( B+ `- a) ^: K: {/ m
使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。
; v) f7 }- V$ o
7 v6 E D/ I! G6 ^* q7 G<2> 在 Server端加入剛剛Client端產生的公鑰:
" }- A( g( F- |/ H: e' E- }, s: }. r' M s
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。
- y) v: o' n! W$ U9 b5 M( C( ^把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。
! b0 o) n% S# tchmod 700 ~/.ssh
3 t7 j$ V& b6 D8 J. l把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。
7 B/ ~& q' M" Fcat ~/id_rsa.pub >> ~/.ssh/authorized_keys- W! o- A$ f. B9 X) b. h1 @( [
7 \: `! Q6 T* \0 j2 }
同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。
; e+ [, X4 [; D% z% l7 Ychmod 600 ~/.ssh/authorized_keys, S9 Z4 l1 d; G' n* N9 _3 W8 w
6 F: R: R. m, d9 ^! e, v$ N, S
% S$ S) F3 R6 ^) x+ D y0 q4 v. l
" y& ]. S4 _' Z6 `結果:: M% O, C5 c H9 f, O
原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。, X9 O8 K6 f+ Q7 w0 S& h
特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣7 S; x, s7 C( I7 B; }* J
2 [$ n6 h, `, c2 J& n" ^5 i) i
% d, n+ t' B; R+ e! t( o( b$ gP.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html i( @- S' a, @! G3 x
* P; Q/ U# J1 u& } |