【发布时间】:2018-03-13 20:25:53
【问题描述】:
我有一个脚本,它通过 ssh 进入主机列表并删除文件。我面临的问题是,当删除发生时,控制台会要求输入密码。
为了解决这个问题,我知道使用下面的代码来硬编码密码
time cat ../hosts.txt | xargs -P 16 -I foo ssh foo ' echo "MYPASSWORD" | sudo -kS rm -rf /tmp/randomfile*'
有什么方法可以避免硬编码密码?
【问题讨论】:
-
你可以设置一个 ssh 密钥
-
另一种选择是
Ansible和sshpass的组合 -
这是系统配置问题。您应该配置远程主机以允许您以不需要使用
sudo删除文件的用户身份登录。这可以像登录root一样简单,或者更安全一些,例如创建一个可以删除这些文件但实际上不能做任何其他事情的特殊用户。 -
(或者更确切地说,配置
sudo,以便特殊用户无需输入密码即可执行此特定命令。)