tid=88071& 本帖最後由 IT_man 於 2018-9-13 18:28 編輯 ( e' y+ H1 _/ m2 Q3 ?
3 A: r: e) e: R V& J% J
本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:
& m2 L" \ B/ L1 S/ x& A! M: j* N e9 R# N
<1> 在Client端產生Client金鑰:, ?. @5 `, ~0 ~; L1 }
8 b# U) g h4 {- s# t! R% @" Q假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。5 K. ]) G# x8 x6 Q7 o6 \7 d' W% C
再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 :. g0 T% K. Q2 U- Z3 O2 r
: H" h3 l3 K( W- o6 [: I
. c; w: |2 ^: @
: ^& X X+ c. p+ f3 r
+ [& C3 K# M& B+ p" O3 Q過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。
2 `' Z% O6 X% y' H+ N1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。5 w- y8 I# A; J6 J, E- p9 r
2. Enter passphrase - 輸入自訂密碼。
; Q9 _( Z1 T% f5 T1 L1 ^/ e( S3. Enter same passphrase again - 再輸入一次自訂密碼。2 f; B1 Y/ l/ O/ L* P* X
7 w$ p2 j. V; v1 q6 C: l' ~# G; }此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。
+ ?+ \/ |; v- [& x使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。 . t n2 |% j3 X( E2 M; M4 D
; w% l0 b0 u7 E) I; C+ k
<2> 在 Server端加入剛剛Client端產生的公鑰:
9 @% D% L3 m, S7 d* D2 s. r& _' h' w* y9 f2 h7 k
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。7 h" B7 k* e* s0 D& z" _
把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。
7 c1 ?% S5 @% M( @. O' Q# C* Pchmod 700 ~/.ssh
4 |9 L' d, a8 M; Q! x把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。
) ^* x/ U" m* a' B8 g: Z4 Hcat ~/id_rsa.pub >> ~/.ssh/authorized_keys
R2 \* l9 P3 V0 V: W$ I8 M& n0 w( x6 s
同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。
6 u1 V8 a7 z8 Q0 L3 F* w" Ochmod 600 ~/.ssh/authorized_keys1 q1 |8 K) S4 W7 O3 a& B, K( Z: i
- W7 c% n O5 ?) T4 W- {
$ e! g/ a7 f3 B% J/ u z0 a/ f! z5 s2 L% R
結果:
1 h9 [: j" t' ]# p+ ?- z, a j原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。9 n$ J4 h2 k( q3 D ?
特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣) A2 C% u8 J, ^# O
" ?1 D6 k5 q2 m
7 j4 u5 K, o3 P/ g" F8 ]P.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html0 N- F4 V6 ?9 Z; c
7 |# ~+ h- a# M9 H; K0 n( Y
|