1

我创建了一个非常长的脚本,它可以完全自动化我公司中 Web 服务器的安装和配置。在脚本运行时,它使用 scp 和 ssh 访问一些远程服务器以下载配置文件,我希望能够拥有一个包含密码的秘密文件(它始终是相同的密码)并且脚本将使用这个文件,无需我手动插入。脚本中的一些行如下所示:

/usr/bin/scp root@192.168.1.10:/etc/mail/sendmail.cf /etc/mail/
/usr/bin/scp -r root@192.168.1.10:/etc/yum.repos.d /etc/

/usr/bin/ssh root@192.168.1.10 'rpm -qa --queryformat "%{NAME}\n" >/tmp/sw.lst'
/usr/bin/scp root@192.168.1.10:/tmp/sw.lst /tmp/
/usr/bin/xargs yum -y install < /tmp/sw.lst

我知道的方法,#ssh-keygen#ssh-copy-id问题是脚本每次都会在不同的机器上运行,我不想在每次运行之前交换密钥。

4

1 回答 1

1

当我不得不做这样的事情时,我使用expect了一个可以从文件中获取密码的包装脚本。即在我的密码文件中,我会有类似的东西

root@192.168.1.10 ThisIsMyPass
user@localhost thisIsMyOtherPass

然后让包装脚本获取(它可能很简单grep "root@192.168.1.10" ~/.passwords | cut -d ' ' -f2

我猜有更合适的方法,但是使用这个方法,您只需要保护您的包装器和密码文件,您就可以公开您的设置脚本。

于 2013-08-21T12:08:20.553 回答