本帖最後由 IT_man 於 2018-9-13 18:28 編輯 , q% z) ?3 p% V6 O6 P
$ w" V7 l1 \& ~& U" d6 l本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:
2 x' z Q/ u4 q, Y' R( f1 v
: L" M1 A. j$ U<1> 在Client端產生Client金鑰:
- o# Y1 o( ]5 L) h) y- t( o1 Z3 i
# S0 F( c9 R1 x! e$ @! y假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。
8 z# ^6 j* P c; x% p再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 :
- x( [3 D N! c1 u. I
- v5 N7 Y/ f: a. [! E7 l7 j c
0 `3 d( |) p0 m
: y( _' X: T2 M: W2 U. n: a
1 Z/ s! n3 x; n8 W" k過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。) E5 A$ ?& F* T: Z
1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。3 p0 f- x6 M# y: I6 D% f6 ^
2. Enter passphrase - 輸入自訂密碼。
7 f; d: j) J. L3. Enter same passphrase again - 再輸入一次自訂密碼。: g1 ]* ?4 r u. E% x
' H% l1 _# A8 S: y: a) _此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。3 W. V! a |$ n) c, S1 ?5 T
使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。 4 } m" h3 Y0 s. S
5 j2 H% J% o4 S<2> 在 Server端加入剛剛Client端產生的公鑰:
; x- j$ H( F* \5 Q4 I0 U3 L2 c" A& x5 R0 |) {8 q
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。, t( _8 C* h' @
把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。
) ]9 Z f8 X& Rchmod 700 ~/.ssh; ~: S( ?* Q- G; `9 G% x7 o0 @
把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。
' u1 b* e- d, p, G3 K3 H+ Ucat ~/id_rsa.pub >> ~/.ssh/authorized_keys
8 F. b* f3 _. M* v+ G& W N2 w& C% h6 Q! ]) u/ s
同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。
: w$ U2 ^, |0 I+ h1 z5 Ychmod 600 ~/.ssh/authorized_keys
( V9 _ l' K- e& }/ G: C$ ^" M! z H) e7 R# c
5 W' {. B9 T4 X' t# k, U1 x9 I' E& g9 C7 L* {: t8 r, c% ?& o
結果:" c9 C8 f8 n ~) M+ @8 a
原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。
" ] t. b+ j; F9 _, o8 E$ l特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣
7 M4 r0 J/ p+ t3 M3 F0 V- r" D5 E. D* A
8 r6 p$ F; Z, k
P.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html
2 x9 ]4 |# D4 i3 B8 o+ M* L& f7 K
|
|