2007年11月5日 星期一

SSH Client for Windows

Linux 內建就有 SSH Server 及 SSH Client 軟體供人使用 , 那 Windows 上呢 ?


尤其很多人一般工作都是使用 Windows 系統 , 可以遙控 Linux 嗎 ?


當然可以 , 這就是我們接下來要介紹的 SSH Client for Windows 的軟體 – PUTTY



PUTTY 是一套 Open Source , Free 的軟體 . 版權宣告

官網位置 : http://www.chiark.greenend.org.uk/~sgtatham/putty/
檔案下載 1 : http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
檔案下載 2 : 等很久資訊室  -  檔案下載區 (google drive)







P.S.
Putty 是 "命令模式" 的 ssh client 軟體 , 無法將 Windows 本機上的檔案傳到 Linux Server 上 ,
ssh client for windows 的傳檔軟體 , 另外有一些 free 的軟體可供選擇 , 這部份的文件小弟有空會補上 .
若您沒辦法等 , 您可以從 http://www.iq180.com.tw 下載區中的 "Net Tools" 類別 , 找到一支名叫 "WinSCP" 的軟體來用 , 操作方式很簡單的 .











login by Password



Putty 檔案很小 , 而且不須安裝 , 直接執行即可 , 再來我們就介紹使用的方式 .


請直接用滑鼠點二下執行 putty.exe  會看到如下面的畫面 :

先不急著設定主機位置 , 我們先調整一下 Putty 的設定值 .


看到左邊樹狀結構中的 Window 類別 ,
用滑鼠點按 Appearance , 有沒有看到右邊變了 ,



在 Font setting 項目 , 按 “Chenge…” 按鈕 , 圖我就不再附上了哦 !
我個人是喜歡選個 “細明體” 字體大小選 “12” , 依個人喜好自己設囉!


再看左邊樹狀結構的 Window 類別 ,
用滑鼠點按 Translation , 有沒有看到右邊變了 ,
在 Character set translation on received data 項目的下拉式選單中 , 選擇 “UTF-8”



不急 , 再選左邊樹狀結構的 Session 類別 , 又回到剛啟動時的畫面 .
用滑鼠點按畫面中間的 Default Settings , 使其反白 , 然後按下旁邊的 “SAVE” 鈕 ,
把我們剛才的設定 , 存成我們以後要用的預設值 .




準備好基本設定後 , 我們就來準備連線囉 !
先確定 Linux Server 上的 SSH Server 有開啟 ,
請在 Linux Server 上執行


netstat   –tln   |   grep   ‘:22’ 


註 : 22 為 SSH Service 所 Listen 的 tcp port


若沒有出現認何訊息 , 就表示沒有啟動 ,
在 Linux 上執行


service sshd start


有看到啟動 OK 即可 .
註 : 這是 RedHat base 的操作指令 , 其它版本的 Linux , 請參考相關文件


再來我們就回到 Windows 上 , 開始設定 SSH Client 來連線吧 !


  1. 在 Host Name (or IP address) 欄位輸入 Linux Server 的 IP 位置 .
  2. 點選 SSH 選項 , 此時 Port 欄位自動會換成 22 .
  3. 在 Saved Sessions 欄位輸入對於這台 Server 的易記名稱 .
  4. 再按 Save 按鈕 , 把這台 Server 的資訊存起來 , 這樣下次要再連上這台 Server 時 , 就不用再次輸入 Server 資訊 , 只要點選 Session 名稱 , 按 Load 鈕 , 按下方的 Open 鈕 , 即可連上 Server . 或者是直接在 Session 名稱上用滑鼠右點兩下 , 也可直接連到 Server .
  5. 接下來我們點按 Open 按鈕 .
由於是第一次連線 , 它發現本機上沒有 Server Key .

它說如果信任這台 Server 就按 “是” .


按下 “是” 後 , 它會出現以下畫面 :

login as : 的後面 , 輸入要登入 Linux Server 的使用者帳號 ,
這裏當然是 Linux 上的帳號哦 !

這裏是用 root 的帳號登入 .
輸入帳號後 , 按 Enter , 它會問你這個帳號的密碼 , 輸入後按 Enter 就登入了哦 !
請盡情使用囉 !


還可以直接輸入中文字耶~! 有時可能要修改中文文件的內容 , 就滿方便的 .
檔案名稱或目錄名稱不建議用中文字喔 ! (下圖是個不好的示範......>_<|||...)













login by Key



使用 Putty 從 Windows OS 上連到 Linux Server 來設定 Linux 真的是滿方便的 ,
但每次都要輸入密碼很麻煩 , 而且又怕駭客來 Try 帳號或密碼 , 會有安全上的疑慮 ..........
( 上圖是從 log 檔中看到有人從同一網路位址來 try 使用者帳號 )


所以我們可以在 Windows Client 製作 Public Key 與 Private Key , 然後利用 Key 來做使用者認證 , 且把 SSH Server 的 Password 認證機制關掉 , 這樣便可以提高安全性及便利性 . 即使不該知道密碼的人拿到了密碼 , 也無法用 SSH 連入 Linux .


首先第一步就是要先下載 PuTTY 的 Key 產生器 -- PuTTYgen


官網位置 : http://www.chiark.greenend.org.uk/~sgtatham/putty/
檔案下載 1 : http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
檔案下載 2 : 等很久資訊室  -  檔案下載區





直接執行 puttygen.exe 會看到如下的畫面 :

因為第一次做 Key , 所以它顯示 No key . 我們可以按下 Generate 按鈕來新增一組 Key .

喂 ~! 不要想利用它在做 Key 的時間跑去抽煙哦 ! 不然你回來時會看到它都沒動 .
因為它是 "反二手煙聯盟" 的 .................................... 冷 ....... >_<|||
由於它是利用滑鼠動作來取得隨機資訊 , 所以請您在空白的地方 , 搖動您的滑鼠 .

Key 做好後 , 會出現像上面這樣的畫面 :
  1. 是 Public Key(公鑰) 的內容 , 請把它放到 SSH Server 的 authorized_keys2 檔案中 , 怎麼放我們稍後會說明 .
  2. 我們先把 Private Key(私鑰) 給存起來 , 畫面這裡就不再提供了 ,
    但是拜託 , 請記得檔案名稱 , 還有不要忘記你存在哪個資料夾了 .
    存的這個檔就是私鑰 , 千萬不要讓別人拿去了 , 不然他也可以利用 Key 連入主機哦 !

接下來我們先用 Putty 連上 Linux Server , 用密碼登入後 ,
輸入

echo  ‘
(不要按 Enter 哦)



再回到剛剛 puttygen 的畫面 , 把 Public Key 的內容複製下來 ,

再次來到剛剛 Putty 的畫面 , 就在剛才輸入的那個單引號後面按一下 “滑鼠右鍵” ,
這時候我們剛才複製的 Public Key 的內容就會貼在單引號後面 ,
最後我們在指令的最後面輸入


‘  >>  /root/.ssh/authorized_keys2
按 Enter

註一 :
上面的這個動作 , 是要 Shell 輸出單引號中的字串 ,
然後我們再利用輸出轉向(>>) , 把字串附加在檔案 /root/.ssh/authorized_keys2 的最後面 ,
而輸出轉向可用 >>> ,
若原本檔案就存在 ,

> 會把原來的檔案內容覆寫掉,

>> 則是把資料接續在原來檔案內容的後面 .

註二 :
把 Public Key 放在 /root/.ssh/authorized_keys2 內 ,
是因為這個範例是要讓 root 用 key 登入 SSH Server ,
若您不是要用 root 登入 , 則您應該要放在相對應的檔案內 ,
如 : /home/user-name/.ssh/authorized_keys2


好了 , 我們終於可以用 key 來登入 Linux Server 了 ,
執行  putty.exe


把我們要登入主機的 session 給 load 進來 ,
再看左邊樹狀結構的 Connection 類別 ,
用滑鼠點按 SSH 項目中的 Auth , 再點按右邊的 Browse 鈕 ,
告訴它剛才做的 Private Key , 檔案是哪一個 . (..........您不會忘了吧 ! .....)

再回到 session 畫面 , 按一下 Save 按鈕 , 把它存起來 .
從此我們只要點選這個 session 兩下 , 就可以用 key 登入 Server 囉 !


按下 Open 按鈕來登入 Linux Server , 下一個畫面中 , 輸入使用者名稱後按 Enter , 怎麼樣 , 不錯吧 ! 沒有問你密碼 , 就讓你登入了 !

上圖中的第二行就可以證明了啊 !

確定可以用 Key 登入 Linux Server 後 , 我們就只剩一個步驟囉 !
編輯 Linux Server 上的 /etc/ssh/sshd_config
找到如下面的一行 :
PasswordAuthentication yes
把 yes 改成 no , 變成如下 :
PasswordAuthentication no
存檔離開後重新啟動 SSH , 從此 , 就算知道 PassWord 是什麼 ,
也無法從 SSH 登入囉 !


P.S. 您可以把 putty.exe 及 Private Key(私鑰) 存在 USB 隨身碟中 , 這樣去到別台 Windows 電腦 , 也可以方便的使用哦 !






OpenSSH












沒有留言: