情况是这样的:从目标机器B上的机器A,我运行下面的shell代码,它完成SUCCESSfully。从目标机器C上的机器A,我运行下面的shell代码,它让我"失去密码"。我可以使用凭据登录计算机A和B,而不会提示您输入sudo密码或其他任何内容。
我进入Ansible.cfg并取消注释ask_sudo_pass,这会导致代码提示我输入sudo密码。但是,我想为几十台机器自动执行此操作,每次使用时都无法为每个机器输入sudo密码。我目前正在为这些机器设置SSH密钥,但是那里有延迟,所以我需要一种方法来在短期内实现自动化。有什么建议吗?
这些是我使用的shell命令:
export ANSIBLE_HOST_KEY_CHECKING=False
sshpass -p ${SSH_PASSWORD} ansible-playbook -i hosts site.yml -u ${SSH_USERNAME} --extra-vars="ssh_user=${SSH_USERNAME}"
答案 0 :(得分:0)
我通常会使用
删除目标用户的密码passwd --delete username
我依靠我的id_rsa来连接,当然我的用户名是"用户名"在目标上是轮组的一部分。
您也可以尝试编辑sudoers文件并添加类似这样的内容
your_username ALL=(ALL) NOPASSWD: ALL
希望这有帮助,