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 的配置刪除還是蠻方便的,運行時指定個參數 -cleanup 就可以清除 PuTTY 的所有配置信息。

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

 

默認的 Action of mouse buttons (鼠標按鍵的功能)的選項是 Compromise:

一是直接用鼠標左鍵拖拉選中就可以了,
二是用鼠標中鍵單擊選中區域的開頭,用滾動條拖拉到期望選中區域的末尾,再用鼠標中鍵單擊,就可以選中了。

 

 

第三個選項是 xterm (xterm 方式),這個跟默認的 Compromise 方式相反的,中鍵和右鍵的操作調換了一下,就不多說了。Action of mouse buttons 的第一個選項是 Windows (Windows 方式的),鼠標中鍵的操作跟前面提到的一樣。右鍵不是粘貼了,而是打開了右鍵菜單。

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

 

解決中文亂碼問題:

1.配置窗口左邊的 Translation,在右邊的 Received data assumed to be in which character set 下拉列表中

2.文字方向問題就改變Font

在 PuTTY 中的前後翻頁,與 Linux 終端一樣,用 Shift+PageUp/PageDown 來上下翻頁,而 Ctrl+PageUp/PageDown 則是一行一行的。

在 Connection 裏面有個 Seconds between keepaliaves,這裏就是每間隔指定的秒數,就給服務器發送一個空的數據包,來保持連接。以免登錄的主機那邊在長時間沒接到數據後,會自動斷開 SSH 的連接。
默認輸入 0 是禁用保持連接,在這裏我習慣的設置了 10。

在 Connection-〉Data 裏面有個 Auto-login username,可以指定默認的登錄用戶。如果每次登錄主機都是用同一個用戶,不妨在這裏設置一下。SSH、Telnet、Rlogin 這三種協議都支持,但不是所有的 Telnet 服務器支持自動登錄用戶

自動設置環境變量

還是前面的那個界面,下面有個 Environment variables,在 Variable 輸入環境變量的名稱,Value裏設置上環境變量的值,登錄主機後就會自動設置上,但是這個不一定能用,有些主機爲了安全,可能會禁用這個特性,一旦登錄就會收到這樣一個錯誤提示:

Server refused to set environment variables

 

設置代理服務器

這個經常用到,設置方法大同小異,注意選擇好 Proxy type(代理服務器的類型)就可以了。
代理服務器的地址填寫到 Proxy hostname 這裏,Port 就是代理服務的端口(HTTP代理常用端口有 3128、8080,Socks5代理常用端口有 1080)
Exclude Hosts/IPs 這裏是填寫排除的主機地址和IP,有些地址不需要代理,就在這裏填寫。
有些代理需要認證,用戶名填寫到 Username,密碼則填寫到下面的 Password。

 

Connection->SSH:如果選中了 Don't start a shell or command at all 就禁用了自動執行命令這一個特性,這個主要是配合 Tunnels (隧道)來使用的。因爲有時候,我們只需要利用隧道建立一個 ×××,而並不需要登錄上去執行命令。用這個方法建立好隧道以後,就一直開放了,除非自己手工關閉。

在 Connection-〉SSH-〉Auth 這裏面有兩個需要了解的,以後在講到 PuTTYGEN 和 Pagent 時會詳細介紹的。
一個是 Allow agent forwarding,作用是允許私鑰代理的轉發。
另外一個是最下面的 Private key file for authentication,選擇私鑰認證文件。

 用 SSH Tunnels(SSH 隧道),突破防火牆

Add new forwarded port 這裏就是添加隧道轉發端口的,其中 Source port 是隧道的源端口,也就是隧道的入口,連接隧道時要連接這個端口。Destination 這裏是目的地,隧道的出口,輸入的格式是: server:port。
還要說明的一點是 SSH 隧道是有方向的,這個方向是由下面的單選按鈕 Local/Remote/Dynamic 來決定的。如果下面的單選按鈕選中的是 Local,那麼 Destination 這裏填寫的目標是相對於遠程主機而言,而非你的機器。這樣的隧道可以稱之爲正向隧道,隧道的入口是在你的本地,出口在遠程主機那一端。如果單選按鈕選中的是 Remote,那麼目標地址就是相對與你的機器而言,而非遠程主機。這樣的隧道稱之爲反向隧道,隧道的入口是遠程主機那一端,隧道的出口則是你的本地機器。這與 Local 選項是相反的。而最後一個 Dynamic 則不用指明 Destination 目標地址,也就是說目標地址是動態的了,連入隧道時可以隨意指定目標地址,而不像 Local/Remote 指明的固定目標地址,所以這樣的隧道就成了變相的加密 socks5 代理服務器了。
看明白了麼?是不是會有些糊塗?後面我會舉個例子來詳細說說的。

一、正向隧道的建立:

Localhost:8080--------------------Remotehost:7001

1.遠程主機開啓監聽端口:

[root@szm ~]# nc -l localhost 7001 

2.Putty上設置Tunnels:(連接上遠程主機的7001端口)

L8080   127.0.0.1:7001

3.測試,本地主機顯示的內容在遠程主機上顯示

本機上telnet 127.0.0.1 8080

二、反向隧道的建立:

 用於突破防火牆的設置,一般防火牆對由內向外的連接都會放行。

Localhost:7001------------------Remotehost:8080 

1.本地主機監聽:

C:\>nc -l -p 7001 localhost

2.Putty上設置Tunnels:

R8080 127.0.0.1:7001

 

3.[root@szm ~]# nc localhost 8080

三、把 PuTTY 作爲一個安全的代理服務器來使用:

1.Putty上設置Tunnels:

D1008

登錄遠程主機後,一個代理服務器就建立好了,這個代理服務器的地址就是 localhost:1080,還是加密的哦。

備份 PuTTY 的設置

 

D:\>regedit /e PuTTY.config.reg "HKEY_CURRENT_USER\Software\SimonTatham\PuTTY"

刪除 PuTTY 的設置

putty.exe -cleanup

用 PuTTYgen 來生成密鑰,以後可以不用密碼登錄服務器了

 但是創建的文件、目錄和用戶主目錄($HOME, $HOME/.ssh, $HOME/.ssh/authorized_keys)的權限有個限制就是對除了本帳戶的其他所有帳戶都要求是隻讀的,否則的話,即使公鑰、私鑰都匹配無誤,也是無法登入系統的。這是 SSH 服務器的一個安全要求,因爲如果別的帳戶可以修改你的 authorized_keys 的話,惡意的增加一個公鑰,那對方不用你的帳戶口令也能以你的帳戶登入系統了。對於一些特殊要求,你可以在 SSH 服務器的配置文件 sshd_config 中用指令StrictModes no來取消這個限制。

 

1.PUTTYGEN.EXE生成私鑰與公鑰

2.把公鑰複製到用戶家目錄內,如:/root/.ssh/authorized_keys

3.Putty軟件Connection->SSH->Auth,指定麼鑰文件

4.Putty軟件Connection->Data,寫入登錄用戶名

5.Pagent這個軟件,加入私鑰文件後就可以自動登錄了

PSCP的使用:

pscp c:\autoexec.bat foobarserver:backup/---------------會話複製

 

pscp -P 22 -i c:\path\your-private-key.ppk -C username@server:/remote/path/---密鑰

pscp c:\path\foo.txt 192.168.6.200:/tmp

pscp c:\path\foo.txt [email protected]:/tmp

pscp -l taylor c:\path\foo.txt 192.168.6.200:/tmp----用戶名

pscp -P 3122 c:\path\foo.txt 192.168.6.200:/tmp

pscp c:\path\foo.txt [email protected]:.

pscp [email protected]:*.tgz c:\backup

 

PSFTP的使用:

C:\>PSFTP.EXE 172.16.128.211

PLINK的使用:

C:\>PLINK.EXE 172.16.128.211

 

C:\>PLINK.EXE 172.16.128.211 date '+%F %T'

2013-03-27 15:11:15

C:\>PLINK.EXE -m szm.txt 172.16.128.211-----批處理文件

 

C:\>PLINK.EXE 172.16.128.211 df -k

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/sda5              4031680    229748   3597132   7% /

tmpfs                   147204         0    147204   0% /dev/shm

/dev/sda1               396672     29137    347055   8% /boot

/dev/mapper/vg_szm-LogVol00

                       9095664    149784   8487140   2% /home

/dev/sda8              2015824     36172   1877252   2% /tmp

/dev/sda3              5039616   1993416   2790200  42% /usr

/dev/sda6              3023760    305020   2565140  11% /var

.host:/              106759924 103932544   2827380  98% /mnt/hgfs

   假設www.chaifeng.com連接着另外一個網段 10.204.26.0,有臺IP 爲 10.204.26.21 的 Solaris 8主機只能用 telnet 登錄,爲了防止被監聽,我們可以用 Plink 建立一個隧道,隧道開放 120 秒鐘,如果隧道沒有被使用,就自動斷開連接,然後我們在本地就可以用命令 telnet localhost 2623 的安全登錄那臺 Solaris 8 主機了。

plink -L 2623:10.204.26.21:23 www.chaifeng.com sleep 120

 在主機 www.chaifeng.com上正在運行着 tor,默認的監聽地址是 127.0.0.1:9050,用 Plink 建立一個隧道,然後瀏覽器上配置代理服務器爲 127.0.0.1,端口是 9050,這樣就能夠安全的使用 tor 代理了,不用擔心從我們的機器到主機 www.chaifeng.com有被監聽的可能了。

plink -C -N -L 9050:127.0.0.1:9050 [email protected]

 

 

 

其他可選的 SFTP 客戶端

FileZilla : [url]http://filezilla.sf.net[/url]

WinSCP : [url]http://www.winscp.net[/url]

其它內容:

 

Ctrl+S 快捷鍵可以暫停終端,Ctrl+Q 恢復。

Shift+PageUp/PageDown 一頁一頁的翻,Ctrl+PageUp/PageDown 則是一行一行的。

不是說 PSCP 一次只能傳輸一個文件麼?爲什麼我發現能傳輸很多個?

那是因爲 PSCP 發現 SFTP 協議可用,優先使用 SFTP 協議來傳輸文件

爲什麼執行了 pscp、psftp、plink 這些命令總是說錯誤的命令呢?

應該把 PuTTY 所在的路徑添加到 PATH 環境變量中。你可以編輯 c:\autoexec.bat 這個文件,在最後增加一行,把 c:\path\to\putty 換成你的真實路徑

set PATH=c:\path\to\putty;%PATH%

 

 原文地址:http://dzh001.blog.51cto.com/2767/40624/

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章