【问题标题】:SSH Commands - Automate/scriptSSH 命令 - 自动化/脚本
【发布时间】:2011-12-23 21:47:44
【问题描述】:

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

用户:%用户名%

用户:%username%

密码:%password%

命令:导出首选项 ftp %ftpserver% %ftpuser% %ftpPassword% backup.exp

【问题讨论】:

    标签: ssh command


    【解决方案1】:

    使用密钥而不是用户名/密码。 http://pkeck.myweb.uga.edu/ssh/

    【讨论】:

    • 这是否适用于路由器 (sonicwall)。我阅读了您发送的文章,它只提到了服务器连接。
    【解决方案2】:

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

    (echo -e 'admin\npassword'; sleep 1; echo tsr; sleep 2; echo logout; sleep 1) | ssh admin@10.50.14.41

    【讨论】:

    • 我正在尝试使用 plink.exe(putty 命令行)来执行这些命令,而您发布的代码不起作用。我稍微修改了一下,在 -shh admin@1.2.3.4 地址之前包含了 plink.exe。整行“-e'admin\npassword'; sleep 1; echo tsr; sleep 2; echo logout; sleep 1)”会显示在用户提示中。从那时起,ssh 会话就没有响应了。你会建议我怎么做?我终于有时间回顾这个脚本,任何帮助将不胜感激。
    • 我提供的命令适用于 Linux bash shell。我会像这样在 Windows 上使用 plink:plink -ssh -l admin -m commands.txt 10.50.14.41,它将让您登录并执行文件 commands.txt 中的命令。该文件中的前两个命令(每行一个)应该是 Sonicwall 用户名和密码,然后是您要发出的任何命令。我没有尝试过,但理论上它应该可以工作。
    • 是的,我试过了,但它不起作用。我收到“致命错误:服务器意外关闭网络连接”错误消息。如果我们不能让它与 plink.exe 一起工作,你知道我可以使用 ssh 和 Windows 操作系统完成这个的任何其他方法吗?感谢您的所有帮助。
    • 我在 Windows 上使用 Cygwin 来执行此操作 - SSH 客户端似乎工作正常。根据您尝试执行的操作的复杂性,您可能需要考虑 Expect TCL 扩展 link
    【解决方案3】:

    这个帖子很旧,但我终于编写了这些愚蠢的 sonicwalls 脚本。这不是我的代码,我不知道我在哪里找到它,但它可以工作,你可以让它做任何事情。只需更改 IP 并登录或其他任何内容。

    @if (@CodeSection == @Batch) @then
    
    @echo on
    set SendKeys=CScript //nologo //E:JScript "%~F0"
    
    start \putty -ssh admin@IP.IP.IP.IP 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));
    

    【讨论】:

      【解决方案4】:

      尝试关注.....

      plink -ssh admin@10.20.30.10 < m.txt
      
      < m.txt >
      
      password
      
      ping 1.1.1.1
      
      tracerout 1.1.1.1
      
      exit
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-01
        • 1970-01-01
        • 2015-10-15
        • 1970-01-01
        • 1970-01-01
        • 2012-08-24
        • 2021-01-10
        • 2015-12-15
        相关资源
        最近更新 更多