我有两个问题:
- 有多台远程linux机器,我需要编写一个shell脚本,在每台机器上执行相同的命令集.(包括一些sudo操作).如何使用shell脚本实现这一点?
- 当ssh连接到远程机器时,如何处理它提示RSA fingerprint 身份验证.
远程机器是在运行时创建的虚拟机,我只有它们的IP.所以,我不能预先在这些机器中放置脚本文件,然后从我的机器上执行它们.
我有两个问题:
远程机器是在运行时创建的虚拟机,我只有它们的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
当ssh连接到远程机器时,如何处理它提示RSA fingerprint 身份验证.
您可以将StrictHostKeyChecking=no
选项添加到ssh:
ssh -o StrictHostKeyChecking=no -l username hostname "pwd; ls"
这将自动将主机密钥添加到已知主机列表中.如果不想将主机添加到已知主机文件中,请添加选项-o UserKnownHostsFile=/dev/null
.
请注意,这是disables certain security checks,例如防止中间人攻击.因此,不应将其应用于安全敏感的环境中.