我有两个问题:

  • 有多台远程linux机器,我需要编写一个shell脚本来在每台机器上执行相同的命令集。 (包括一些 sudo 操作)。这如何使用 shell 脚本来完成?
  • ssh'ing到远程机器,提示RSA指纹认证时如何处理。

  • 远程机器是运行时创建的虚拟机,我只有它们的 IP。所以,我不能事先在这些机器中放置一个脚本文件并从我的机器上执行它们。

    最佳答案



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

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



    您可以将 StrictHostKeyChecking=no 选项添加到 ssh:
    ssh -o StrictHostKeyChecking=no -l username hostname "pwd; ls"
    

    这将 disable the host key check 并自动将主机 key 添加到已知主机列表中。如果您不想将主机添加到已知主机文件中,请添加选项 -o UserKnownHostsFile=/dev/null

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

    关于linux - 写一个shell脚本ssh到远程机器并执行命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13928116/

    10-15 08:14