tid=88071& 本帖最後由 IT_man 於 2018-9-13 18:28 編輯
' ?9 [4 Z- N: l( h9 U# X2 ~* W: @6 Z; z/ f
本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:
5 x5 t" I* H+ D8 j4 L4 Q
3 }7 E1 `; ~ X& m+ q<1> 在Client端產生Client金鑰:
8 D$ U( _% o! B0 U# L1 E1 V8 T
- f7 i& _( K [6 Y+ N) |5 E假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。' T$ A; A3 s. D( o
再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 :( e' E' u% O0 N/ E; \& y( }
# ], h& B) | ~1 H! S. Y7 G# Y
% L w. p1 `* z: k* N! x' n2 a
; y1 c5 U8 y8 z; b' {/ v' @: }/ g; }* X2 W7 L' E
過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。
6 K T$ s- z" l+ [2 q8 p: C: e) t! @1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。 g! q# `' ^/ D* Y& n
2. Enter passphrase - 輸入自訂密碼。
# r0 x; H3 j" H; e5 i6 J3. Enter same passphrase again - 再輸入一次自訂密碼。' F* t+ x s& |1 |7 e9 x. N0 r
3 ]' h4 a/ N, S8 [ j' L/ z
此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。
8 g0 z- O2 Q7 v+ n. O6 l9 l- j7 _使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。 : w# S0 `5 e- a T0 o/ ]
* ?" W; T9 Y, |<2> 在 Server端加入剛剛Client端產生的公鑰:
$ ]& f; H5 E [ j3 _2 k% o5 o6 `+ P/ ^* C
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。7 f& H3 X8 s, l$ E, g
把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。' u6 n+ p' S! g
chmod 700 ~/.ssh
4 y, B3 B" |% N把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。 " l3 p( |" Z* X) m( g* k+ r/ T
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
+ R% d$ x* o$ r; L4 m; [6 C M/ C% _! P' u' @* x, N+ j) i
同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。5 S p) _0 l& \7 l8 G/ Z4 t1 m
chmod 600 ~/.ssh/authorized_keys
6 H6 Z: P& B- l+ ~0 a8 C3 v8 d! }% _5 O* P5 v- }. C& h
6 l6 f) |. k5 |% ]1 `
# ]) _' ^, @8 G* ~
結果:' r3 }: j+ Z* O* E7 f- V
原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。
9 L- g* `5 D; [- C8 h- W特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣
, T8 g k/ e( O2 ?
' h+ h! m. D6 h: i) Z3 o( B/ D
3 O9 f, A) k1 o1 V8 m, JP.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html
* _1 k6 o" L. R, H- Q( w# z o8 `. X8 V1 H$ A; Y! r
|