tid=88071& 本帖最後由 IT_man 於 2018-9-13 18:28 編輯 3 o; W$ l. {9 k7 ]% F+ ~; k* c
( O/ E8 I/ a4 w3 P
本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:
' Q2 ]+ u% R- A: C$ N* u4 g+ l+ B% J- O W' y. w
<1> 在Client端產生Client金鑰:' S8 X, ?! O) x
8 q8 B; }0 E( E5 w. O7 e
假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。
2 a" P2 D! L: }9 ?7 y% V; G再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 : L" C' Q+ U* L0 |( n- a) J8 d
/ }+ u/ X$ z) g# `
8 F4 G! W4 h9 J4 w
# O1 Z; D: G' n" W/ U4 H
# m% ]( h. A( ^2 q5 H2 h過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。1 p( h# W B: T2 y2 r3 ]
1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。
4 b# l# \9 I; p# u* ]2. Enter passphrase - 輸入自訂密碼。& t) r$ ^- f6 `& T& j4 Q
3. Enter same passphrase again - 再輸入一次自訂密碼。$ c+ d/ s# w" O" n
1 o9 i* ?+ z1 c- f0 l此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。
7 N! Q0 y* Y( d7 I使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。 # t( a( |* c$ Y0 x
6 ^5 \; Y: q/ n8 j% r; n" o y
<2> 在 Server端加入剛剛Client端產生的公鑰:
( ~5 \8 l1 G! i2 X( w! R% Z4 c% X( x9 l' ~! {9 C5 w! `! \: w P% F
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。
$ i0 T' p3 U* [1 h; G把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。# B$ ?, a) P7 B; X2 k
chmod 700 ~/.ssh
! s- o1 ]- o2 F5 @把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。
% @* ]+ e/ t, Qcat ~/id_rsa.pub >> ~/.ssh/authorized_keys
/ g# [& b& B6 `2 H7 S7 F+ R/ j( h6 x: ^+ g4 Z8 y1 k. ]3 n
同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。
. R6 k8 q7 j$ l) o. Q( T8 t& pchmod 600 ~/.ssh/authorized_keys2 v7 W+ j7 t7 H, P5 r( i! I
8 ]2 P' W! F* ]* h8 J/ c6 Z6 f
1 ?0 f3 r+ X, s5 L
4 u5 z! X! W. H! Z9 O) M4 z1 o% M, ?
結果:
$ h6 t( t. L. c5 H, L( t# J原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。 i* Y0 W; i. q* ~; d
特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣
0 J6 z/ S8 n5 @/ d4 H1 E% h
) K2 t$ m+ z9 N3 \4 m4 x. i0 K
* P8 B8 s1 E7 ]2 t' mP.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html
0 q; y7 Q& A" D2 Q3 L, u) a! G
5 E4 {3 r1 N! H- r* ?' { |