在通过ssh运行命令时从远程机器询问问题

我有一些服务器,我想在他们所有人上安装SSL我写了下面的脚本(我应该从每个服务器运行):

#!/bin/bash #something to install SSL on centos #.... # 

注意:我应该像这样运行脚本(因为分配了ssl证书):

 ./ssl-conf <<EOF > <CountryNmane> > <StateName> > <LocalityName> > <OrganizationName> > <OrganizationUnitName> > <CommonName> > <EmailAddress> > <ChallengePassword> > <CompanyName> >EOF 

现在我的问题:我想写一个bash与我的服务器的数量做。我写了这样的东西(我应该运行在我的机器上):

 #!/bin/bash while read pass port user ip; do sshpass -p$pass -o 'StrictHostKeyChecking no' -p $port $user@$ip <<EOF <<SSH US something newyork test test1 test2 test3 challengepassword test4 EOF #End of asking questions #commands to install SSL #commands to install SSL #commands to install SSL SSH #end of commands running on remote machine done <<___HERE mypasswd 22 root 192.168.1.1 mypasswd 22 root 192.168.1.2 mypasswd 22 root 192.168.1.3 ___HERE 

这个语法正确吗?

不起作用。

任何想法?

先谢谢你

SSH和heredoc

你不能在同一个命令行上创建两个 文件

但是你可以完全在命令行写远程的ssh命令:

 Script=$'while read foo ;do\n echo $HOSTNAME $foo\ndone' echo "$Script" 

注意使用双引号

 while read pass port user ip; do sshpass -p$pass ssh -o 'StrictHostKeyChecking no' -p $port $user@$ip "$Script" <<eoparams US something newyork test test1 test2 test3 challengepassword test4 eoparams done <<eodests mypasswd 22 root 192.168.1.1 mypasswd 22 root 192.168.1.2 mypasswd 22 root 192.168.1.3 eodests