当前位置: 首页 > 面试题库 >

编写Shell脚本以ssh到远程计算机并执行命令

郗奇玮
2023-03-14
问题内容

我有两个问题:

  1. 有多台远程linux机器,我需要编写一个shell脚本,它将在每台机器上执行相同的命令集。(包括一些sudo操作)。如何使用Shell脚本来完成?
  2. 切换到远程计算机时,提示输入RSA指纹认证时如何处理。

远程机器是在运行中创建的VM,我只有它们的IP。因此,我无法事先在这些计算机中放置脚本文件并从我的计算机中执行它们。


问题答案:

有多台远程linux机器,我需要编写一个shell脚本,它将在每台机器上执行相同的命令集。(包括一些sudo操作)。如何使用Shell脚本来完成?

您可以使用ssh进行此操作,例如:

#!/bin/bash
USERNAME=someUser
HOSTS="host1 host2 host3"
SCRIPT="pwd; ls"
for HOSTNAME in ${HOSTS} ; do
    ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done

切换到远程计算机时,提示输入RSA指纹认证时如何处理。

您可以将StrictHostKeyChecking=no选项添加到ssh:

ssh -o StrictHostKeyChecking=no -l username hostname "pwd; ls"

这将禁用主机密钥检查,并将主机密钥自动添加到已知主机列表中。如果您不想将主机添加到已知主机文件中,请添加选项-o UserKnownHostsFile=/dev/null

请注意,这 会禁用某些安全检查 ,例如,防止中间人攻击。因此,不应将其应用于对安全性敏感的环境中。



 类似资料:
  • 问题内容: 我在远程计算机上有一个Java程序。它在同一文件夹中有一个配置文件。当我通过SSH进入计算机时,我会执行以下操作: 这里的问题是配置文件不在路径中,因为我们在主文件夹中,所以我的程序无法读取配置。 我想先进入该文件夹,然后从该文件夹运行程序。在shell脚本中,如果我这样做 它执行第一条语句,第二条语句运行时,它在我的当前计算机而不是远程计算机上运行。 我们可以只执行一个命令还是对此有

  • 问题内容: 我正在Ubuntu上用python编写程序,以在RaspberryPi上执行命令,并与网络连接。 有人可以指导我该怎么做吗? 问题答案: 当然,有几种方法可以做到! 假设您在主机上安装了Raspberry Pi,并且用户名是。 这是运行命令的默认Python库。 您可以使其运行并在远程服务器上执行所需的任何操作。 scrat已在他的回答中提及。如果您不想使用任何第三方库,则绝对应该这样

  • 问题内容: 我希望批量编写一些脚本,这将需要在Linux上运行远程ssh命令。我希望返回输出,以便可以在屏幕上显示或记录它。 我尝试过,但屏幕上没有返回任何内容。 有人做过吗? 问题答案: PuTTY 的切换将 脚本文件 的 路径 作为参数而不是 command 。 参考:https : //the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.

  • 问题内容: 场景是-我有一个作业A,它运行我的蚂蚁脚本并为我打包工件。 我还使用参数化的触发式插件来触发我的“作业B”,它将把我的工件部署到远程机器上。 作业A正常工作,作业B也正常。 我必须对作业B执行的任务是 GIT签出(包含我的部署脚本)(成功进行了捐赠)。 将工件从以前的版本复制到远程机器。(成功完成) 在远程计算机上运行Shell脚本(工作区文件夹中的脚本)-面临问题。 我浏览了相同的各

  • 我实际上想要的是windows环境中等效的非ssh连接。根据要求,我的控制器机器可以使用某种实用程序/协议(如ssh或telnet或rpc或tpc)使用用户名密码连接到远程机器,并且使用此会话,我可以在远程机器上传输文件或执行命令。此连接执行必须在远程计算机不进行任何干预的情况下完成,即,我不需要在远程计算机上安装任何模块或安装任何实用程序,也不需要运行任何脚本。 我的控制器和远程环境都是窗口。

  • 问题内容: 我试图连接到主机,然后使用“ su-john”更改用户,然后以john身份执行命令。仅使用JSch是否有可能? 问题是在创建会话并打开通道并执行上述命令后,它应该要求输入密码,但没有任何反应。 这是我连接到远程计算机的方式: 然后我通过如下方法执行命令: 当我更改用户时,是否必须创建另一个频道,或者如何使其工作? 因为如果我用 它只执行“ su”命令,但没有完成用户的更改,之后执行“