一、前言
借用百度百科關於putty的描述:PuTTY是一個Telnet、SSH、rlogin、純TCP以及串行接口連接軟件。較早的版本僅支持Windows平台,在最近的版本中開始支持各類Unix平台,並打算移植至Mac OS X上。除了官方版本外,有許多第三方的團體或個人將PuTTY移植到其他平台上,像是以Symbian為基礎的移動電話。PuTTY為一開放源代碼軟件,主要由Simon Tatham維護,使用MIT licence授權。隨着Linux在服務器端應用的普及,Linux系統管理越來越依賴於遠程。在各種遠程登錄工具中,Putty是出色的工具之一。Putty是一個免費的、Windows 32平台下的telnet、rlogin和ssh客戶端,但是功能絲毫不遜色於商業的telnet類工具。
很多人是在Windows上進行開發的,但在實際的項目中難免有使用Linux服務器的需求。而我們有時也無法避免的需要在Windows機器上來遠程執行Linux服務器上的一些指令或者程序。本文就介紹 一種在命令行使用putty(而不是界面,方便編程)執行遠程命令的方法。
二、putty命令行指令簡介
putty提供了一些命令行指令,這些命令行指令可以在:
http://the.earth.li/
~sgtatham/putty/0.54/htmldoc/Chapter3.html#3.7找到,這里只對幾個我們需要用到的介個指令進行介紹。
1. 在命令行啟動session
在命令行啟動session的指令為:
putty.exe [-ssh | -telnet | -rlogin | -raw] [user@]host
2. 標准指令介紹
2.1 選擇協議:-ssh, -telnet, -rlogin, -raw
這是putty支持的4個協議,在建立session時,我們需要指定使用的協議
2.2 -l:指定登錄用戶名
2.3 -pw:指定密碼(明文密碼,在編寫代碼時得考慮這里的安全性)
2.4 -load:加載一個已保存的session
在使用putty時,可以將session保存,下次連接時,無需再進行配置即可直接連接。在通過命令行創建session時,可以直接使用這個指令,如:
putty.exe -load "server_session"
xxx@yyyy
其中xxx為使用的用戶名,yyyy為我們要連接的遠程主機ip地址。
2.5 -m:指定包含需遠程執行的指令的本地文件
如假設我們在cmd.txt這個文件中寫了我們需要在遠程主機上執行的指令集合,則可以按如下方法在遠程主機上執行這些指令:
putty.exe -ssh
xxx@yyyy -m "cmd.txt"
2.6 -i:指定SSH秘鑰
這個參數用於指定需要使用的SSH秘鑰文件,假如遠程主機采用秘鑰文件的方式來進行身份驗證,則可以使用如下指令來建立session:
putty.exe -ssh
xxx@yyyy -i privatekey.ppk
只要將以上的”privatekey.ppk“換成你自己的文件即可。