2011-11-07 73 views
2

我环顾四周,似乎无法找到我的问题的答案。我正在寻找一种方法来自动化/脚本化一组SSH命令以从我们的Sonicwall路由器导出配置文件。我设置了sonicwall命令,但我无法自动执行它们。当我使用SSH连接到我们的某个sonicwall时,系统会为用户提示。我输入用户名,然后再次提示输入用户名和密码。一旦我输入正确的信息,我可以执行配置的导出。以下是布局示例。请让我知道,如果有人知道一种方法来自动化/脚本。 由于事先SSH命令 - 自动化/脚本

用户:%的用户名%

用户:%的用户名%

密码:%密码%

命令:导出首FTP%的FTPServer %%名为ftpuser%%ftpPassword%备份.exp

回答

1

使用键代替用户名/密码。 http://pkeck.myweb.uga.edu/ssh/

+0

虽然这有时不适用于嵌入式设备。 – a3nm

+0

这将工作与路由器(sonicwall)。我读过你发送的文章,它只提到服务器连接。 – Mpit52

1

路由器期望SSH用户名,但不是密码。一旦您通过SSH“登录”用户名,Sonicwall将使用其内部认证机制提示输入用户名和密码。像Sonicwall CLI中的其他任何提示一样处理这些提示。您可以通过标准输入通过您的命令(包括用户名/密码)这样的,例如:

(echo -e 'admin\npassword'; sleep 1; echo tsr; sleep 2; echo logout; sleep 1) | ssh [email protected]

+0

我正在尝试使用plink.exe(putty命令行)来执行这些命令,并且您发布的代码不起作用。我稍微修改它以在-shh [email protected]地址之前包含plink.exe。 整行“-e'admin \ npassword'; sleep 1; echo tsr; sleep 2; echo logout; sleep 1)”会显示在用户提示符中。从那时起,ssh会话不响应。 你会怎么建议我去做这件事?我终于有时间回顾这个脚本,任何帮助将不胜感激。 – Mpit52

+0

我提供的命令是针对Linux bash shell的。我将在Windows上使用plink,如下所示:'plink -ssh -l admin -m commands.txt 10.50.14.41'将会登录并执行文件commands.txt中的命令。该文件中的前两个命令(每行一个)应该是SonicWALL的用户名和密码,然后是任何要发布的命令。我没有尝试过,但理论上它应该起作用。 – PunctuallyChallenged

+0

是的,我试过了,它不起作用。我收到“致命错误:服务器意外关闭网络连接”错误消息。如果我们无法得到这个与plink.exe一起工作,你知道任何其他方法,我可能能够使用ssh和Windows操作系统来完成此操作吗? 谢谢你的帮助。 – Mpit52

0

这个线程是旧的,但我终于脚本这些愚蠢的sonicwalls。这不是我的代码,我不知道我在哪里找到它,但它有效,你可以做任何事情。只需更改IP和登录等。

@if (@CodeSection == @Batch) @then 

@echo on 
set SendKeys=CScript //nologo //E:JScript "%~F0" 

start \putty -ssh [email protected] 22 

TIMEOUT /T 5 
%SendKeys% "admin{ENTER}" 
TIMEOUT /T 2 
%SendKeys% "password{ENTER}" 
TIMEOUT /T 2 
%SendKeys% "restart{ENTER}" 
TIMEOUT /T 2 
%SendKeys% "y{ENTER}" 

pause 
@end 

WScript.CreateObject("WScript.Shell").SendKeys(WScript.Arguments(0));