在批处理(Windows)脚本远程SSH命令脚本的最佳方法

我正在寻找批处理脚本的东西,这将需要在Linux上运行远程SSH命令。 我想要输出返回,所以我可以显示它在屏幕上或login。

我试过putty.exe -ssh user@host -pw password -m command_run但它不会返回任何东西在我的屏幕上。

任何人之前做过?

PuTTY的-m开关将脚本文件路径作为参数,而不是命令

参考: https : //the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html#using-cmdline-m

所以你必须将你的命令( command_run )保存为一个纯文本文件(例如c:\path\command.txt )并将其传递给PuTTY:

 putty.exe -ssh user@host -pw password -mc:\path\command.txt 

虽然请注意,您应该使用Plink(来自PuTTY套件的命令行连接工具)。 这是一个控制台应用程序,所以你可以将其输出重定向到一个文件(你无法使用PuTTY)。

命令行语法是相同的,添加了输出重定向:

 plink.exe -ssh user@host -pw password -mc:\path\command.txt > output.txt 

请参阅使用命令行连接工具Plink 。

而Plink实际上可以直接在命令行上提供命令:

 plink.exe -ssh user@host -pw password command > output.txt 

类似的问题:
使用PuTTY从Windows自动运行Linux上的运行命令
在批处理文件中执行Plink中的命令

您也可以直接Bash on Ubuntu on Windows使用Bash on Ubuntu on Windows 例如,

 bash -c "ssh -t user@computer 'cd /; sudo my-command'" 

Per Martin Prikryl的评论如下:

-t启用终端仿真。 无论你需要sudo的终端仿真取决于配置(默认情况下,你不需要它,而许多分布覆盖默认)。 相反,许多其他命令需要终端仿真。

作为一个替代选项,你可以安装OpenSSH http://www.mls-software.com/opensshd.html ,然后简单地ssh user@host -pw password -m command_run

编辑:在安装时,从user2687375响应后,只选择客户端。 一旦完成,您应该能够从命令启动SSH。

然后你可以创建一个ssh批处理脚本,比如

 ECHO OFF CLS :MENU ECHO. ECHO ........................ ECHO SSH servers ECHO ........................ ECHO. ECHO 1 - Web server 1 ECHO 2 - Web server 2 ECHO E - EXIT ECHO. SET /PM=Type 1 - 2 then press ENTER: IF %M%==1 GOTO WEB1 IF %M%==2 GOTO WEB2 IF %M%==E GOTO EOF REM ------------------------------ REM SSH server details REM ------------------------------ :WEB1 CLS call ssh user@xxx.xxx.xxx.xxx cmd /k :WEB2 CLS call ssh user@xxx.xxx.xxx.xxx cmd /k