【问题标题】:Is it possible to run a script with ssh2shell or simple-ssh using node.js?是否可以使用 node.js 使用 ssh2shell 或 simple-ssh 运行脚本?
【发布时间】:2019-07-02 23:42:03
【问题描述】:

在上一个问题中,我询问是否可以使用 node.js 从远程 SSH 会话运行 telnet 会话。我通常通过 SSH putty 会话连接到 linux 服务器,然后 telnet 到另一个 idirect / 调制解调器。我想使用 node.js 以编程方式执行此操作。从收到的答案中,我了解到我必须运行一个期望脚本来执行所需的 telnet 命令。

是否可以使用ssh2shellsimple-ssh 运行脚本?

【问题讨论】:

    标签: javascript node.js ssh telnet


    【解决方案1】:

    这是完全可行的,根据我对您问题的理解,您想通过 SSH 连接到服务器,然后运行脚本?请详细说明一下。

    有一些工具可以通过 Node.js 运行 shell 命令: - ShellJS - Exec-sh

    需要注意的一点是,您必须将脚本移植到它们的语法中的那些工具,但它们仍然是 shell 命令,它们也提供错误处理。

    【讨论】:

    • 嗨。谢谢回复。通过 ssh2shell ,我可以通过 SSH 连接到远程机器。从这台远程机器上,我需要远程登录到另一个路由器/调制解调器。我只知道使用 `ssh2shell' 运行单个命令。我需要运行一个期望脚本才能登录并在 telnet 会话中执行命令。所以,我需要通过 SSH 远程连接到一台机器,然后从那台机器远程登录到另一台路由器。主要问题是我需要在远程机器上从我的机器上运行本地脚本。
    • 在这个布局中你想把你的应用放在哪里?就在通过 SSH 连接的第一台机器上?
    • 应用需要在第一台机器上 > 通过 ssh 连接到第二台机器 > 通过 telnet 连接到第三台机器
    • 我脑海中浮现的想法是,您可以创建一个从 linux 服务器到 telnet 调制解调器的本地 SSH 隧道,这样,您只需在第一台机器(应用程序)上发出命令,它“出现”就好像你只做一个连接。因此,这种方式通过 ssh 发送 telnet 命令的应用程序 > 使用本地 SSH 隧道运行 linux 的机器 > 通过 telnet 的机器。这将帮助您了解隧道Send Telnet command inside a SSH Tunnel
    【解决方案2】:

    我使用了 node-ssh。

    你可以连接到实例,你可以像这样使用它:

    let sshConnection = ssh.connect({
        host: <host>,
        username: <username>,
        privateKey: '/path/to/id-rsa'
      })
    
      sshConnection.then(() => {
        ssh.putFile('./script.py', '/tmp/script.py').then(() => {
          log('The File thing is done')
        }, (error) => {
          log('Somethings wrong', error)
        })
      })
    
      sshConnection.then(() => {
        ssh.execCommand(`echo hello-world`, { cwd: '/home' })
        .then((result) => {
          log(`result.stdout = ${result.stdout}`)
          log(`result.stderr = ${result.stderr}`)
        })
      })
    
    

    【讨论】:

    • 嗨。我的主要问题是第二台 telnet 服务器。我可以使用 node.js 通过 SSH 连接到第一个 linux 服务器,但无法执行期望脚本以通过 telnet 从 linux 服务器连接到第二个路由器。我认为使用 SSH 隧道的选项可能是我应该做的。
    猜你喜欢
    • 1970-01-01
    • 2012-12-15
    • 2023-01-12
    • 2023-01-05
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 2021-12-31
    相关资源
    最近更新 更多