对于主要的 Ansible 用户来说,似乎只有两种合理的方法:
- 使用
root
ansible
使用具有NOPASSWD
sudo
访问权限的其他用户(例如
第一个选项是行不通的,因为我一想到继续PermitRootLogin
下去就感到畏缩。所以,默认情况下,第二个选项似乎是可行的。
我至少在思考/etc/ssh/sshd_config
:
Match User ansible
PasswordAuthentication No
并使用以下from
选项将密钥的使用限制在 Ansible 主机上authorized_keys
:
from="192.168.100/24"
到目前为止我的想法还有其他想法或问题/担忧吗?
答案1
这些是我对必须通过 ssh 远程管理的客户端使用的措施(在我的情况下使用 BackupPC 而不是 Ansible,但其工作方式相同)。
如果你只使用 ssh 来管理客户端,而不是用于 shell 访问,那么添加
AllowUsers ansible
PasswordAuthentication no
答案2
您可以拥有一个需要密码才能进行 SUDO 访问的用户帐户,并在运行时通过ansible-playbook 的--ask-sudo-pass
标志 ( -K
)提供该值
ansible-playbook -i inv/production -K playbook.yml