tid=88071& 本帖最後由 IT_man 於 2018-9-13 18:28 編輯 + r0 v6 P. D6 b& N* d- w' _5 V
4 l; y @* }# p, C6 t% Z s本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:
( k5 C! x) N0 X4 l' v3 L% n0 V0 ^# m9 f- g; w
<1> 在Client端產生Client金鑰:
! V4 r. F# |" R! m7 U2 J$ Z2 X) o/ \( A
假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。
- i/ n4 F; P# n! h& c8 {+ U8 B再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 :
( k. F# I7 O* V) ^/ q
& D; T \* K$ V2 I3 A, m/ q) F- y5 k
6 L! {" e2 N- W1 M, S8 m
4 g8 k0 l# ~! p, w# m7 _/ R
Q0 X3 K! F+ i. y( o: o' K過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。
9 D4 f% p# i6 Z* `" J$ U5 A9 }1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。5 R8 l- ~" p- U+ q7 F1 k
2. Enter passphrase - 輸入自訂密碼。6 @' w9 |: V. m, L: M( K
3. Enter same passphrase again - 再輸入一次自訂密碼。
2 q5 n) _' r" d/ |3 V8 r# E- E+ V1 [, U' l5 d
2 n/ L5 ~( \4 Z( L W0 G; T此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。
; \- s4 G, N0 o' A( Z) t) J4 x使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。
/ X W( O3 y, p
1 A9 V& K i* k" H; |6 B<2> 在 Server端加入剛剛Client端產生的公鑰:0 W& N- O" `+ v/ f% ?
. [! O8 N* j5 w/ U/ D- r1 r a
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。 T5 ]1 `1 z7 d
把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。8 f3 m, p0 h& S. w
chmod 700 ~/.ssh
3 K! _( A: t$ s4 y5 C! Y4 `2 p把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。 - R/ N) A2 _; _& Q5 W" p
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys7 h! f! ~) D- u
2 p& b, o2 [% G3 P+ P同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。, J2 h( E! t, a: X' g
chmod 600 ~/.ssh/authorized_keys
% y. t$ a( Q4 r! c/ q! o0 c/ w
' K) U6 h4 a8 K) p+ L8 P9 f5 V% q0 U5 |% @
* s `) V% s# D) J
結果:* i! y$ q7 j& q
原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。2 P8 c. P1 g, `) M4 O
特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣
4 m( [! {% Q {3 c; S* I( s
1 F! U E4 I; ?; }0 X( g+ @# z2 i" w# s, @# @
P.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html
3 L* o% E( Q/ }. Z
, |& u! Q4 C. K* O' I) E! w( | |