putty使用教程


最近開始使用putty,在網絡上看到一份很不錯的教程,共享一下:putty使用方法,中文教程序言

大致內容羅列如下:

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

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

一些基本知識

如果你已經知道 SSH、Telnet、Rlogin 這是什么,就跳過這一部分,看下面的吧。

(以后補充,暫時空下)

 

簡介

PuTTY 的官方網站:http://www.chiark.greenend.org.uk/~sgtatham/putty/,截止到 2007年6月,發布的最高穩定版本是 0.6。
PuTTY 是一個跨平台的遠程登錄工具,包含了一組程序,包括:

  • 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 就可以看到下面這個界面

在這里輸入服務器的 IP
或主機名,選擇好登錄協議,還有協議的端口,如果希望把這次的輸入保存起來,以后就不需要再重新輸入了,就在第4步輸入好會話保存的名稱,比如:mail-server,或者干脆就是主機的地址,點擊保存就可以了。

最后點下面的 Open 按鈕,輸入正確的用戶名和口令,就可以登錄服務器了。首次登錄一台主機時

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

這是要告訴你登錄的主機密鑰指紋,點 Yes 就保存起來,以后就不會再彈出這個窗口,然后就正常登錄。點 No 不保存,下次還是要提示你,然后也可以正常登錄。如果一台主機我們只是臨時登錄一下,當然就是點 No 了。Cancel 就是取消,也就是取消了這次登錄。 如果你曾經登錄過這台主機,但是又彈出來這個對話框,可能有以下幾種情形:

  • 主機重新安裝了操作系統
  • 這台主機可能有多個IP,這次用的是另外一個 IP
  • 有其他不懷好意的主機來冒充,誘騙我們登錄,竊取隱秘信息

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

又看到了中文亂碼

成功登錄主機后,輸入命令,這……這……顯示,又是亂碼。唉,中文亂碼是一個老生常談的問題,提起來就頭大。原因嘛,不外乎字符集、終端編碼之類的,還是可以解決的。

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

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

字體選擇好了,還要確定字符集。
選擇配置窗口左邊的 Translation,在右邊的 Received data assumed to be in
which character set 下拉列表中選擇最后一個“Use font encoding”,最后點下面的 Apply 按鈕就生效了。

 

重新執行命令 ls -l,就可以正常看到中文了

怎么還是亂碼?

如果還是亂碼的話,就執行以下命令,看看系統的字符集 echo LANGLANGLANGUAGE

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

 

這下99%的情形下,漢字是不會有亂碼了。最后,總之一下 PuTTY 中亂碼的解決辦法:
先看看系統的字符集,如果是 UTF-8
的,那就簡單了,選擇好中文字體,然后編碼選擇 UTF-8 就行了。
如果編碼是 GB2312、GBK、GB18030,當然也包括 BIG5這些,在
PuTTY 的編碼選擇中看不到這些編碼,那就選擇最后一個“Use font
encoding”,絕大部分情況下這樣就沒啥問題了,反正我是沒碰到有什么例外的情況。
現在的 Linux 如果默認語言選擇為中文,默認的編碼就是
UTF-8 了。以前安裝 Redhat AS 3 時,語言選擇為中文,默認的編碼是 zh_CN.gb2312, zh_CN.gb18030,好像從 AS 3
update 6 開始,包括現在的 AS4、AS5,中文的默認編碼都成了 zh_CN.utf8。至於 Debian、Ubuntu 等等這些上面,好像一直都是
UTF-8。
至於是使用 UTF-8呢,還是用 GB2312、GBK 或者 GB18030呢?我個人還是傾向於
UTF-8。畢竟我們使用的大多數軟件都是國外的,處理中文編碼多多少少有些問題,PuTTY 自然也不例外。
下面的這個圖上,我把終端編碼修改為
zh_CN.utf8,然后也按照前面的所說的方法把 PuTTY 的字符集修改為 UTF-8。然后在終端中輸入漢字“柴鋒”,按左方向鍵,可以看到漢字顯示很正常。

我重新把終端的編碼修改為 zh_CN.gb2312,同樣的,把 PuTTY 的字符集修改為最后一個“Use font
encoding”。還是在終端上輸入漢字“柴鋒”,按下左方向鍵以后,會看到漢字亂碼了。

至於用哪個編碼,主要還是看領導的決定了,我們的領導就喜歡 GBK,連 GB18030 都不行。以前在用 Debian 的時候,好像默認都不支持 GBK
編碼。這幾年公司的開發在漢字編碼問題上出過幾次麻煩,還不就是在 ISO8859-1,
GB2312/GBK/GB18030和UTF-8上折騰來折騰去。
給大家看一張 emacs 的截圖,看看上面的這么多語言的文字共同顯示,這個會是用
GB2312/GBK/GB18030 的編碼么?

用 UTF-8 也不是為了要在一個屏幕上顯示好幾種不認識的文字,也不一定非要是跟國際接軌弄個外包給老外開發程序做個其他語言的界面讓老外用,起碼不要在那么多編碼里折騰了,頂多兩個 ISO8859-1 和 UTF-8。發發牢騷,下面繼續……在 PuTTY 里面怎樣選中,復制和粘貼?

在 PuTTY 的窗口里面復制、粘貼可不能用 Windows 里的這些 Ctrl C, Ctrl Ins, Ctrl V 這些快捷鍵,Ctrl C 在控制台上可是終止當前的命令執行。 PuTTY 的選擇、復制、粘貼這些操作都是通過鼠標來完成的。 在 Window-〉Selection 這里可以設置復制和粘貼的方式。

默認的 Action of mouse buttons (鼠標按鍵的功能)的選項是
Compromise,這種方式下選中有兩種方式,一是直接用鼠標左鍵拖拉選中就可以了,二是用鼠標中鍵單擊選中區域的開頭,用滾動條拖拉到期望選中區域的末尾,再用鼠標中鍵單擊,就可以選中了。
選中以后,單擊鼠標左鍵就把選中部分復制到剪貼板了。粘貼也很簡單,單擊鼠標右鍵。
Action
of mouse buttons 的第一個選項是 Windows (Windows
方式的),鼠標中鍵的操作跟前面提到的一樣。右鍵不是粘貼了,而是打開了右鍵菜單。

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

第三個選項是 xterm (xterm 方式),這個跟默認的 Compromise 方式相反的,中鍵和右鍵的操作調換了一下,就不多說了。
下面那個
Shift overrides application's use of mouse 是和 Shift 鍵有關的。有些 Rogue Like 的程序,比如
mc、links、Lynx、VIM 等等,都支持鼠標操作,想在用鼠標在上面選擇或粘貼就不行了。這個選項默認是選中的,在支持鼠標操作的 Rogue Like
界面下,按住 Shift 鍵,就可以像前面的那樣用鼠標來選擇、復制、粘貼了。
看下面的這個圖片,用 Links 打開了 Google 的首頁,用鼠標去選中
頂部中間的 Google,我們會發現,彈出了保存的對話框。

 

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

按住 Shift 鍵重新操作一次,哈哈,這次選中了。

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

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

實時保存會話

這次更改配置參數了,關閉窗口后,下次使用還是要重新選擇的,麻煩。 還是回到上面修改配置的哪個地方,選擇左邊的 Session,在右邊選擇要覆蓋的會話名稱,或者重新輸入一個新的名稱,點擊 Save 按鈕保存。

成功登錄主機后,也能正常看到中文了。這樣,我們就可以完成大部分的工作。最后要關閉窗口了,該怎么辦呢?我見過很多人,包括我們公司負責專職維護的同事,都是直接點擊窗口上的關閉按鈕,完全沒有理會彈出警告窗口,直接點擊了
Yes。

這樣做是不對的,首先這不是正確的注銷方式,應該輸入命令 exit 來正常注銷;其次直接關閉窗口后,你的登錄其實還在服務器上,如果一連多次的這樣強制關閉窗口,用命令 w 或者 who 命令查看時,可以看到很多的用戶還在系統上登錄,占用了系統的資源。最重要的是,你的這次登錄可能只是為了啟動一下 WebLogic 或者其他什么應用服務器,直接關閉窗口后,可能會導致你的業務在隨后的幾分鍾內也被終止,這應該不是你所希望看到的吧。 如果上述的理由是每次要輸入 exit 然后回車,比較麻煩。你可以用快捷鍵 Ctrl d 來注銷登錄,一般情況下,快捷鍵一按窗口都直接關閉了,還省了兩次鼠標點擊。 在前面說道保存會話時,大家或許也注意到,下面有個 Close window on exit 有三個選項:

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

有的程序在執行時,雖然在命令最后面加上 “&”就能放到后台運行。但是正常注銷登錄后,窗口沒有被自動關閉,還能看到程序的輸出,這時強制關閉窗口還是可以的。為了避免這種情形,可以使用 nohup 命令。 用法嘛就是: nohup 命令 命令參數,這樣就可以了。

窗口保存的輸出有點少,前面的都看不到了

執行了一個命令,輸出了好多東西,但是默認的配置下,PuTTY只保存了最后200行的內容,滿足不了我們的需求


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM