26.6. 使用 ssh RHEL 系统角色配置 OpenSSH 客户端
您可以使用 ssh
RHEL 系统角色配置多个 OpenSSH 客户端。它们可让本地用户通过确保以下内容,来与远程 OpenSSH 服务器建立一个安全连接:
- 保护连接启动
- 凭证置备
- 在用来保护通信渠道的加密方法之上与 OpenSSH 服务器进行协商
- 能够安全地向 OpenSSH 服务器发送文件和从 OpenSSH 服务器接收文件
注意
您可以将 ssh
RHEL 系统角色与更改 SSH 配置的其他系统角色一起使用,如 Identity Management RHEL 系统角色。要防止配置被覆盖,请确保 ssh
RHEL 系统角色使用置入目录(RHEL 8 及之后版本中的默认目录)。
先决条件
- 您已准备好控制节点和受管节点。
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: SSH client configuration hosts: managed-node-01.example.com tasks: - name: Configure ssh clients ansible.builtin.include_role: name: rhel-system-roles.ssh vars: ssh_user: root ssh: Compression: true GSSAPIAuthentication: no ControlMaster: auto ControlPath: ~/.ssh/.cm%C Host: - Condition: example Hostname: server.example.com User: user1 ssh_ForwardX11: no
示例 playbook 中指定的设置包括以下内容:
ssh_user: root
-
使用特定配置在受管节点上配置
root
用户的 SSH 客户端首选项。 Compression: true
- 压缩已启用。
ControlMaster: auto
-
ControlMaster 多路复用设置为
auto
。 Host
-
创建别名
示例
,以名为user1
的用户身份连接到server.example.com
主机。 ssh_ForwardX11: no
- X11 转发被禁用。
有关 playbook 中使用的角色变量和 OpenSSH 配置选项的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.ssh/README.md
文件和ssh_config (5)
手册页。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml
请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
验证
通过显示 SSH 配置文件来验证受管节点是否有正确的配置:
# cat ~/root/.ssh/config # Ansible managed Compression yes ControlMaster auto ControlPath ~/.ssh/.cm%C ForwardX11 no GSSAPIAuthentication no Host example Hostname example.com User user1
其他资源
-
/usr/share/ansible/roles/rhel-system-roles.ssh/README.md
文件 -
/usr/share/doc/rhel-system-roles/ssh/
目录 -
ssh_config (5)
手册页