tid=88071& 本帖最後由 IT_man 於 2018-9-13 18:28 編輯 0 @2 y& n+ B j2 n7 s5 j
/ _/ m+ z! a: ~6 q; X
本篇主要介紹從linux client 免帳號密碼ssh(Secure shell)連到linux server之詳細過程。步驟:0 S! \1 @& U7 R4 D
' i4 u, o) Z8 U% W! C( C
<1> 在Client端產生Client金鑰:
_% a/ I0 {' @
) v: u& b$ ~3 s7 p9 k% l0 l- l假設在client端以使用者 user1 登入,家目錄的 .ssh 目錄裡,目前只有一個 known_hosts 檔案,這個是用來記錄曾經連線到別台的server的 SSH Server 公鑰。
: `; t7 x- J# D4 i' K再來,產生一組這台client的 SSH 公鑰+私鑰,預設是使用 RSA 演算法 ==> ssh-keygen 指令 :9 h2 t( a! ?% q6 n# t0 i
+ _" ^3 w/ E9 I% T$ W7 F) \
! T8 o+ a0 n* E; U3 a. C
3 |2 a7 H: R) h6 ]& N( I p; T1 r4 |2 F0 i3 u# [0 s' j3 m8 Q
過程有三個選項要使用者設定,不必修改,全部直接按 Enter 用預設值就好了。
+ I: ^* x, \: g* C D+ w0 }1. Enter file in which to save the key - 輸入金鑰的檔案路徑及名稱,預設是 ~/.ssh/id_rsa。& [' o- [# o0 w
2. Enter passphrase - 輸入自訂密碼。, T( ^! U! o$ p5 ~( L
3. Enter same passphrase again - 再輸入一次自訂密碼。' ^% Y& ~* I( u7 V7 Q5 }
3 _4 p6 \' F4 t; S: t3 Q
此時它就會產生 id_rsa 私鑰及 id_rsa.pub 公鑰。公鑰的內容,其實就只是一堆的加密過的文字而已。
# u! W3 F. ^" O! X1 o( U使用 scp 或 ftp 或你習慣的檔案傳輸工具將 Client 端的公鑰 ~/.ssh/id_rsa.pub 複製到 Server端裡,帳號假設也是user1,那麼就把公鑰存到 user1 的家目錄 ~。 + i4 A& F6 j8 e: l9 D; b' I7 Q
" n% G) y3 \- P1 H' l! W7 ?; u<2> 在 Server端加入剛剛Client端產生的公鑰:
1 e4 B0 _4 D1 n8 w& S4 u- l# X( L6 }- W# j& t/ {- M
用SSH軟體,假設以Putty連到 Server端,user1登入後確認一下 Client 的公鑰 id_rsa.pub 已經被複製進來,如果家目錄沒有 .ssh 目錄就自行建立。
( G! H6 z( X& \把 .ssh 目錄的權限改成只有本人才可讀寫,這樣比較安全。3 ]. W$ v) M0 r: {6 y: L/ s
chmod 700 ~/.ssh
, }; ^0 s4 b+ o( {- R7 T把剛剛複製過來的 Client 端公鑰,匯入到 Server端的授權清單(authorized_keys)裡。
* |0 h! [& p/ ], p; x( z8 B: v7 u7 _8 Zcat ~/id_rsa.pub >> ~/.ssh/authorized_keys
8 f2 v; h- x' Y' a1 V/ X/ C% p' g
& o3 A5 ~4 y4 d/ o同樣把 authorized_keys 檔案的權限只有本人可讀寫,這樣比較安全。
F% {& V$ [1 \: Cchmod 600 ~/.ssh/authorized_keys, {; V" w8 t% e: Y0 _$ c# R
i( A5 y( G6 G
: Q- |' p+ |, ]9 @; P6 F
: w$ o ?) q! a( q3 F
結果:4 V: Q0 f$ R8 l b( n
原本登入的時候,會詢問帳號跟密碼。將 Client 端的公鑰加到 Server端 的授權名單後,就可以直接登入不用帳號密碼了,是不是很方便,而且經過SSH加密傳輸更安全。1 T/ r& _, K: h, i" s+ S
特別說明的是:上面的步驟只提供Client端的使用者user1免帳號密碼登入到Server端的使用者user1;如果Client端的使用者user1欲免帳號密碼登入到Server端的使用者root的話,步驟<2>的user1需換成root,即Server端須以root登入,其他動作都一樣: d. T# U1 v# n+ s. d
. r. V: N$ T3 s. _. r5 C3 H' D2 _7 h/ i0 ~0 b7 K5 [8 S
P.S 至於從Windows 免密碼ssh(Secure shell)連到linux server,請參考 http://blog.itist.tw/2015/03/login-ssh-server-without-username-and-password.html
( s. I$ e" |3 F8 R- F9 X
3 ]. t! z `3 s$ }0 Q' g |