security - 使用无密码 root ssh 的 Redhat 自动化操作
问题描述
我有几个需要在服务器网络上执行的操作。
对于这些操作,我有两个选择:
手动,这将需要很多努力,并且可能我需要在不同的网络上一遍又一遍地执行此操作。
自动,使用 ssh 连接时不允许密码提示的脚本或 ansible。
其中一些操作需要 root 访问权限。例如,
需要使用useradd
and命令。
另外,我需要更改文件夹中的几个文件。groupadd
etc
var
在安全性方面,要求无密码的 root ssh 访问以便 ansible 或其他人能够做到这一点是否安全且可接受?
如果没有,是否可以添加官方参考?最好是redhat网站或其他。
请注意,不允许使用 sudoer 用户。
解决方案
我会说不,“无密码 root ssh 访问”不安全。但是,您可以以 root 身份通过 ssh 使用基于密钥的身份验证。换句话说,你可以做你想做的事,只是不完全是你描述的那样。
添加用户和组是一个非常典型的配置管理任务,对于 ansible 来说是一个完美的工作。我建议创建一个使用 user 和 group 模块的 ansible playbook,而不是运行原始的 useradd 和 groupadd 命令(参见下面的示例)。但是,这将需要设置必要的基于 ssh 密钥的身份验证。
Ansible 也可以帮助完成该任务,但您必须使用密码进行身份验证才能设置基于密钥的身份验证。
https://docs.ansible.com/ansible/latest/modules/user_module.html https://docs.ansible.com/ansible/latest/modules/group_module.html
- name: Add the user 'johnd' with a specific uid and a primary group of 'admin'
user:
name: johnd
comment: John Doe
uid: 1040
group: admin
推荐阅读
- kalman-filter - 使用卡尔曼滤波器的多传感器融合
- c - 如何将汇编程序值返回给 C Int 指针?
- javascript - 在 NETTE 框架中如何以及在何处包含 CSS 和 JS 文件?
- javascript - 将回调结果保存到变量
- python - 如何使用 reStructuredText 记录 python 模块?
- javascript - 如何在 TLSWrap.onStreamRead 修复 ECONREST
- regex - 如何定位数据列而不是字符位置而不是使用循环在 Perl 和 Bash 中搜索?
- swift - 为什么 UIScreen.main.bounds 会为每个设备返回 (0.0, 0.0, 320.0, 568.0)?
- neo4j - 在多路径查询中强制关系顺序
- swift - MacOS 完成发布请求然后继续