本帖最後由 IT_man 於 2018-9-13 18:28 編輯
% b& k- b( O) K g6 ^/ s% ~
4 I. H( L/ ?9 ^0 S( j本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:
& v* e T0 v% Z/ W( S; h. A5 n! M# |3 E0 V0 F$ l# v& T
<1> 在Client端產生Client金鑰:" g& x, R8 \. S& |
+ ?9 X# s A2 O. Y# @2 j2 P) \9 _
假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。8 r& P6 Y9 y& ~
再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 :! t+ w1 e9 d/ C+ h. C
7 @8 }% A! U* v3 K
/ W3 J2 m. m O& N6 X4 P7 F7 x+ F
( ]6 t0 w& B1 i
" z4 z S( T3 ]! f* Z過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。
$ G4 {$ f. n: Y3 ]+ z3 S# A% X1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。% x# d% `- Z' C- W- n
2. Enter passphrase - 輸入自訂密碼。
0 }3 F0 ?3 r( p. A5 }0 j3. Enter same passphrase again - 再輸入一次自訂密碼。$ D5 t7 d2 |2 d$ q! C) P/ B
4 D% d0 M( m8 Q7 X6 |9 D( U# `7 t此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。
8 T2 K/ k8 q# D0 T1 J$ H- b使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。
! r& f" i5 |. k4 j# m- ]9 I- f0 Z9 h ^/ \. D+ n) j
<2> 在 Server端加入剛剛Client端產生的公鑰:9 y1 g' s8 Z3 E. y
, b( M. w* C6 {( E7 _- E: `$ E
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。
4 U8 h/ @* X% v d. G把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。
: {$ _; O* @0 w+ Y6 cchmod 700 ~/.ssh, b0 c& M* d G# E# X$ f m; a
把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。
6 P8 g3 W0 u _/ }7 Y9 R3 H& Zcat ~/id_rsa.pub >> ~/.ssh/authorized_keys
5 u6 o0 ^$ i5 g! z( S9 I1 ], q7 }7 {% o0 }. M
同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。 H0 F& e2 D6 [) ^7 R: X
chmod 600 ~/.ssh/authorized_keys
4 \5 e) S- }1 J% U- c5 I. V+ j$ d
, Q5 X, i* k% s9 W& B ?! x! i0 c0 T) [% \
# z" i8 _3 i6 I1 Q6 \7 Q; B
結果:
) s5 \% @+ X; S0 _9 p原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。2 W7 ?- a. A5 S
特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣
; F- j: q5 ~# }# V w- ^
9 p7 L7 A' @0 ^
' D. w1 a% Y& L$ kP.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html
: o* D! Z! s1 l0 O; a
2 d( j! f! C: B |
|