利用putty在windows上通过脚本在远程Linux机器执行指令

时间:2023-01-22 23:44:46
一、前言     借用百度百科关于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“换成你自己的文件即可。    (更多的指令这里不做更多的介绍...)