Windows下SSH客服端PuTTY–詳細使用教程(一)(轉載)

putty使用方法,中文教程序言

雜七雜八的亂說了一些,這裏把大體內容羅列以下:html

  • 最簡單的使用,登陸 SSH 主機
  • 中文亂碼的處理
  • PuTTY 經常使用配置的說明
    • 複製、粘貼
    • 保存會話
    • 註銷
    • 自動登陸用戶名
    • 自動設置環境變量
    • 設置代理服務器
    • 自動執行命令
    • 備份、刪除 PuTTY 的設置
  • PuTTY 的 X11 轉發
  • 如何用 PuTTY 創建 SSH 隧道
  • 如何用 PuTTY 創建反向的 SSH 隧道,像個特洛伊木馬同樣突破防火牆
  • 把 PuTTY 做爲一個安全的代理服務器
    • 安全的上網不被嗅探
    • 避免 MSN 等聊天工具被監聽
  • 怎樣用 PSCP、PSFTP 安全的傳輸文件
    • 功能強大的 SFTP 客戶端 WinSCP
  • 用 PuTTYgen 生成密鑰,登陸 SSH 主機再也不須要口令
  • Pagent 代理密鑰,每次開機只須要輸入一次密鑰口令
  • Plink 簡單而又迅速的執行 SSH 主機上的程序
  • 常見問題

除了上面的這些,還夾雜了一些 PuTTY 使用上的技巧、服務器配置的一些安全建議。提及來這是一些有關 PuTTY 的使用教程,其實也就是 SSH 的參考教程,絕大多數的內容在其餘系統或軟件上也都是同樣的。不一樣的是參數、配置、命令行之類的,只要會了一個,其餘也就舉一反三了。promise

一些基本知識

若是你已經知道 SSH、Telnet、Rlogin 這是什麼,就跳過這一部分,看下面的吧。安全

(之後補充,暫時空下)服務器

簡介

PuTTY 的官方網站:http://www.chiark.greenend.org.uk/~sgtatham/putty/,截止到 2007年6月,發佈的最高穩定版本是 0.6。app

PuTTY 是一個跨平臺的遠程登陸工具,包含了一組程序,包括:ide

  • PuTTY (Telnet 和 SSH 客戶端)
  • PSCP (SCP 客戶端, 命令行下經過 SSH 拷貝文件,相似於 Unix/Linux 下的 scp 命令)
  • PSFTP (SFTP 的命令行客戶端,相似於 FTP 的文件傳輸,只不過使用的是 SSH 的 22 端口,而非 FTP 的 21 端口,相似於 Unix/Linux 下的 sftp 命令)
  • PuTTYtel (僅僅是一個 Telnet 客戶端)
  • Plink (命令行工具,執行遠程服務器上的命令)
  • Pageant (PuTTY、PSCP、Plink 的 SSH 認證代理,用這個能夠不用每次都輸入口令了)
  • PuTTYgen (用來生成 RSA 和 DSA 密鑰的工具).

雖然包含了這麼多,但平時常常見到只是用 PuTTY 登陸服務器,徹底沒有發揮出 PuTTY 的強大功能。工具

PuTTY 做爲一個組件也存在於不少的軟件中,好比 FileZilla、WinSCP字體

在後面的文字中,如非特別說明,默認的登陸的協議是 SSH。畢竟用 PuTTY 主要就是登陸 SSH 主機,用 Telnet、RLogin 無法體現出 PuTTY 的強大功能。網站

安裝

下載頁面在這裏:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 編碼

PuTTY 須要安裝麼?須要麼?須要麼?真的須要麼?不須要。PuTTY 是一個準綠色軟件,說它綠色是由於直接就能使用,徹底沒有任何的安裝程序。準綠色是指 PuTTY 的全部配置都保存到了註冊表,若是不記得備份註冊表中的相關內容,下次重裝機器全部配置就沒了,並且配置也不方便用閃存盤隨身攜帶。可是 PuTTY 的配置刪除仍是蠻方便的,運行時指定個參數 -cleanup 就能夠清除 PuTTY 的全部配置信息。

第一印象,開始登陸一臺遠程主機

運行 PuTTY 就能夠看到下面這個界面

putty登陸界面

在這裏輸入服務器的 IP 或主機名,選擇好登陸協議,還有協議的端口,若是但願把此次的輸入保存起來,之後就不須要再從新輸入了,就在第4步輸入好會話保存的名稱,好比:mail-server,或者乾脆就是主機的地址,點擊保存就能夠了。

putty界面設置

最後點下面的 Open 按鈕,輸入正確的用戶名和口令,就能夠登陸服務器了。

首次登陸一臺主機時

第一次登陸時,會看到這個對話框

putty對話框

這是要告訴你登陸的主機密鑰指紋,點 Yes 就保存起來,之後就不會再彈出這個窗口,而後就正常登陸。點 No 不保存,下次仍是要提示你,而後也能夠正常登陸。若是一臺主機咱們只是臨時登陸一下,固然就是點 No 了。Cancel 就是取消,也就是取消了此次登陸。

若是你曾經登陸過這臺主機,可是又彈出來這個對話框,可能有如下幾種情形:

  • 主機從新安裝了操做系統
  • 這臺主機可能有多個IP,此次用的是另一個 IP
  • 有其餘不懷好意的主機來冒充,誘騙咱們登陸,竊取隱祕信息

前兩個情形很常見,通常點 Yes 就好了。後面這個嘛……唔……唔……,點 No/Cancel,再去詢問相關的主機管理人員。

又看到了中文亂碼

成功登陸主機後,輸入命令,這……這……顯示,又是亂碼。唉,中文亂碼是一個老生常談的問題,提起來就頭大。緣由嘛,不外乎字符集、終端編碼之類的,仍是能夠解決的。

putty亂碼

PuTTY 的默認字體和字符集並不適合中文顯示, 在窗口標題上點擊右鍵,選擇 Change Settings…

putty顯示中文

在打開的配置窗口左邊選擇 Appearance,在右邊點 Font settings 裏面的 Change 按鈕,選擇好中文字體,好比:宋體、新宋體之類的

putty設置字體

字體選擇好了,還要肯定字符集。

選擇配置窗口左邊的 Translation,在右邊的 Received data assumed to be in which character set 下拉列表中選擇最後一個「Use font encoding」,最後點下面的 Apply 按鈕就生效了。

putty選擇字符集

從新執行命令 ls -l,就能夠正常看到中文了

putty中文界面

怎麼仍是亂碼?

若是仍是亂碼的話,就執行如下命令,看看系統的字符集

echo $LANG $LANGUAGE

putty亂碼2

哦,原來系統的字符集是 UTF-8 呀。從新返回上面選擇字符集的那一步, 選擇配置窗口左邊的 Translation,在右邊的 Received data assumed to be in which character set 下拉列表中選擇「UTF-8」

putty-utf8

這下99%的情形下,漢字是不會有亂碼了。最後,總之一下 PuTTY 中亂碼的解決辦法:

先看看系統的字符集,若是是 UTF-8 的,那就簡單了,選擇好中文字體,而後編碼選擇 UTF-8 就好了。

若是編碼是 GB23十二、GBK、GB18030,固然也包括 BIG5這些,在 PuTTY 的編碼選擇中看不到這些編碼,那就選擇最後一個「Use font encoding」,絕大部分狀況下這樣就沒啥問題了,反正我是沒碰到有什麼例外的狀況。

如今的 Linux 若是默認語言選擇爲中文,默認的編碼就是 UTF-8 了。之前安裝 Redhat AS 3 時,語言選擇爲中文,默認的編碼是 zh_CN.gb2312, zh_CN.gb18030,好像從 AS 3 update 6 開始,包括如今的 AS四、AS5,中文的默認編碼都成了 zh_CN.utf8。至於 Debian、Ubuntu 等等這些上面,好像一直都是 UTF-8。

至因而使用 UTF-8呢,仍是用 GB23十二、GBK 或者 GB18030呢?我我的仍是傾向於 UTF-8。畢竟咱們使用的大多數軟件都是國外的,處理中文編碼多多少少有些問題,PuTTY 天然也不例外。

下面的這個圖上,我把終端編碼修改成 zh_CN.utf8,而後也按照前面的所說的方法把 PuTTY 的字符集修改成 UTF-8。而後在終端中輸入漢字「柴鋒」,按左方向鍵,能夠看到漢字顯示很正常。

putty輸入中文

我從新把終端的編碼修改成 zh_CN.gb2312,一樣的,把 PuTTY 的字符集修改成最後一個「Use font encoding」。仍是在終端上輸入漢字「柴鋒」,按下左方向鍵之後,會看到漢字亂碼了。

putty-gb2312

至於用哪一個編碼,主要仍是看領導的決定了,咱們的領導就喜歡 GBK,連 GB18030 都不行。之前在用 Debian 的時候,好像默認都不支持 GBK 編碼。這幾年公司的開發在漢字編碼問題上出過幾回麻煩,還不就是在 ISO8859-1, GB2312/GBK/GB18030和UTF-8上折騰來折騰去。

給你們看一張 emacs 的截圖,看看上面的這麼多語言的文字共同顯示,這個會是用 GB2312/GBK/GB18030 的編碼麼?

putty-gbk

用 UTF-8 也不是爲了要在一個屏幕上顯示好幾種不認識的文字,也不必定非要是跟國際接軌弄個外包給老外開發程序作個其餘語言的界面讓老外用,起碼不要在那麼多編碼裏折騰了,頂多兩個 ISO8859-1 和 UTF-8。發發牢騷,下面繼續……

在 PuTTY 裏面怎樣選中,複製和粘貼?

在 PuTTY 的窗口裏面複製、粘貼可不能用 Windows 裏的這些 Ctrl C, Ctrl Ins, Ctrl V 這些快捷鍵,Ctrl C 在控制檯上但是終止當前的命令執行。

PuTTY 的選擇、複製、粘貼這些操做都是經過鼠標來完成的。

在 Window-〉Selection 這裏能夠設置複製和粘貼的方式。

putty複製粘貼

默認的 Action of mouse buttons (鼠標按鍵的功能)的選項是 Compromise,這種方式下選中有兩種方式,一是直接用鼠標左鍵拖拉選中就能夠了,二是用鼠標中鍵單擊選中區域的開頭,用滾動條拖拉到指望選中區域 的末尾,再用鼠標中鍵單擊,就能夠選中了。

選中之後,單擊鼠標左鍵就把選中部分複製到剪貼板了。粘貼也很簡單,單擊鼠標右鍵。

Action of mouse buttons 的第一個選項是 Windows (Windows 方式的),鼠標中鍵的操做跟前面提到的同樣。右鍵不是粘貼了,而是打開了右鍵菜單。

putty複製粘貼1

其實這個右鍵菜單在標題欄上點擊,也均可以看獲得。

putty複製粘貼2

第三個選項是 xterm (xterm 方式),這個跟默認的 Compromise 方式相反的,中鍵和右鍵的操做調換了一下,就很少說了。

下面那個 Shift overrides application’s use of mouse 是和 Shift 鍵有關的。有些 Rogue Like 的程序,好比 mc、links、Lynx、VIM 等等,都支持鼠標操做,想在用鼠標在上面選擇或粘貼就不行了。這個選項默認是選中的,在支持鼠標操做的 Rogue Like 界面下,按住 Shift 鍵,就能夠像前面的那樣用鼠標來選擇、複製、粘貼了。

看下面的這個圖片,用 Links 打開了 Google 的首頁,用鼠標去選中 頂部中間的 Google,咱們會發現,彈出了保存的對話框。

putty-xterm

按住 Shift 鍵從新操做一次,哈哈,此次選中了。

putty-xterm1

在 Control use of mouse 裏面還有個 Default selection mode (默認的選擇模式),默認是 Normal,就像文字處理工具裏這樣的選擇

另一個是 Rectangular block(塊選擇方式),至於用哪一種方式就看本身的選擇了。

ajbgz6fp3pjh_43crqhds

實時保存會話

此次更改配置參數了,關閉窗口後,下次使用仍是要從新選擇的,麻煩。

仍是回到上面修改配置的哪一個地方,選擇左邊的 Session,在右邊選擇要覆蓋的會話名稱,或者從新輸入一個新的名稱,點擊 Save 按鈕保存。

putty保存會話

成功登陸主機後,也能正常看到中文了。這樣,咱們就能夠完成大部分的工做。最後要關閉窗口了,該怎麼辦呢?我見過不少人,包括咱們公司負責專職維護的同事,都是直接點擊窗口上的關閉按鈕,徹底沒有理會彈出警告窗口,直接點擊了 Yes。

ajbgz6fp3pjh_16cfthdg

這樣作是不對的,首先這不是正確的註銷方式,應該輸入命令 exit 來正常註銷;其次直接關閉窗口後,你的登陸其實還在服務器上,若是一連屢次的這樣強制關閉窗口,用命令 w 或者 who 命令查看時,能夠看到不少的用戶還在系統上登陸,佔用了系統的資源。最重要的是,你的此次登陸可能只是爲了啓動一下 WebLogic 或者其餘什麼應用服務器,直接關閉窗口後,可能會致使你的業務在隨後的幾分鐘內也被終止,這應該不是你所但願看到的吧。

若是上述的理由是每次要輸入 exit 而後回車,比較麻煩。你能夠用快捷鍵 Ctrl d 來註銷登陸,通常狀況下,快捷鍵一按窗口都直接關閉了,還省了兩次鼠標點擊。

在前面說道保存會話時,你們或許也注意到,下面有個 Close window on exit 有三個選項:

  • Always (無論怎樣,窗口老是要關閉的)
  • Never (不管是否有程序還在運行,都不要關閉窗口)
  • Only on clear exit (這個是默認選中的,只有在本次登陸中運行的程序都正常終止或者在後臺運行,窗口才關閉)

有的程序在執行時,雖然在命令最後面加上 「&」就能放到後臺運行。可是正常註銷登陸後,窗口沒有被自動關閉,還能看到程序的輸出,這時強制關閉窗口仍是能夠的。爲了不這種情形,可使用 nohup 命令。

用法嘛就是: nohup 命令 命令參數,這樣就能夠了。

相關文章
相關標籤/搜索