Windows远程linux服务器执行shell命令

时间:2021-09-04 20:05:32
一、前言

借用百度百科关于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“换成你自己的文件即可。