本帖最後由 IT_man 於 2018-9-13 18:28 編輯
/ u/ y. i0 P" K3 K/ L) W
3 f6 `3 i. M1 p) Q4 ^6 d1 @2 i本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:
! n+ z/ a* n( t5 K1 s
' j5 j' {( l. N' A<1> 在Client端產生Client金鑰:
* `* N: F4 A N; V) ]0 s
$ n7 E. F9 L: M$ d假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。1 w. O+ s+ A% D5 V. S& k4 u) [
再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 :3 p* A/ e) \! U4 V8 Y4 [' d
+ b( j: ]1 G4 G9 B
% x6 p/ m" U$ r2 W4 b5 G: |( _) Q2 k$ T& C6 `" ~/ L
; k- t1 Q1 a- P7 L) P1 q
過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。2 O" k% f& D: ]; n1 U# ~6 }
1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。" a0 B$ K3 a) A9 f: T( I
2. Enter passphrase - 輸入自訂密碼。
5 G `. u$ T: f! v; i6 Q- ]# B% ~3. Enter same passphrase again - 再輸入一次自訂密碼。
9 z$ I. g- |4 ]( ^3 s: i" h. j/ J+ G" d6 B$ \
此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。5 K8 r) l. ]* U/ Y
使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。 1 I" d+ @& H# M) S% _# ^2 X
& k; F% n8 c& o
<2> 在 Server端加入剛剛Client端產生的公鑰:
, P3 ^0 U* ~3 F7 e2 P5 s5 [* d$ D A- ~+ H9 ]1 d" \
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。
$ C) R% K4 e" |, w把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。
( h# A+ G7 h6 j! W( W; j2 ^chmod 700 ~/.ssh
; ~5 H- h+ _* w4 S# d' t$ B把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。
1 y4 x$ d1 C* |, N4 D, u2 scat ~/id_rsa.pub >> ~/.ssh/authorized_keys( P6 B$ [3 i- ?3 ~$ d% z( `3 F6 X9 v. w
+ ]. a# t' M& R8 \0 @5 z
同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。
1 H0 b3 @% H! T# w8 W; kchmod 600 ~/.ssh/authorized_keys
1 s- X' P9 h7 E$ a2 u
, w" G. X( v9 A7 C$ l: T; |9 Q2 [& b6 T, v$ n8 R
" O7 Y! c7 Z) `9 g) Y5 ?+ V
結果:
" ]% J, x2 {4 x- _ O. P原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。
7 E) ?( K, k6 H% K9 a- N3 S! ~特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣
5 k' B2 [! ~% H" f* s. j
0 D, [* P: D8 ]0 N; L- K$ L P1 H' a p( }8 z! G
P.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html6 n3 u& P- j2 z/ \8 d
. T5 L; K! ^ A# S# [ y. M
|
|