小编典典

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

linux

我有两个问题:

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

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


阅读 629

收藏
2020-06-02

共1个答案

小编典典

有多台远程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

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

2020-06-02