-1

我正在尝试将我的 ssh 密钥复制到我的脚本从列表中读取的所有主机,ssh 到它们并运行一些yum install命令:

while read f; do
   ssh-copy-id -f myusername@"$f"
   ssh myusername@"$f" '
        yum install -y epel-release
        wget --no-check-certificate https://packages.icinga.org/epel/7/release/noarch/icinga-rpm-release-7-1.el7.centos.noarch.rpm
        sudo -n yum install -y icinga-rpm-release-7-1.el7.centos.noarch.rpm
        yum install -y icinga2  nagios-plugins-all
        rm -rf /etc/icinga2/conf.d/*
        rm -f /etc/icinga2/zones.conf

我收到一个错误:

sudo: a password is required 
bash: line 7: /etc/icinga2/zones.conf: Permission denied

如果我添加 -i ( sudo -i) 那么我会得到:

sudo: no tty present and no askpass program specified
bash: line 7: /etc/icinga2/zones.conf: Permission denied

你能帮忙吗?

谢谢

4

1 回答 1

1

您没有使用 运行任何 shell sudo,因此-i不需要该选项。您需要的是删除-n参数,以便sudo提示您输入密码,告诉ssh提供终端sudo以用于提示,并确保您正在使用sudo所有需要它的命令。

就像是

while read f; do
   ssh-copy-id -f myusername@"$f"
   ssh -t myusername@"$f" '
        sudo yum install -y epel-release
        wget --no-check-certificate https://packages.icinga.org/epel/7/release/noarch/icinga-rpm-release-7-1.el7.centos.noarch.rpm
        sudo yum install -y icinga-rpm-release-7-1.el7.centos.noarch.rpm
        sudo yum install -y icinga2  nagios-plugins-all
        sudo rm -rf /etc/icinga2/conf.d/*
        sudo rm -f /etc/icinga2/zones.conf
        '
于 2018-07-31T15:50:56.797 回答