3.9. 为 Ansible 启用免密码 SSH
在 Ansible 管理节点上生成 SSH 密钥对,并将公钥分发到存储集群中的每个节点,以便 Ansible 可以在不提示输入密码的情况下访问节点。
如果使用基于 Cockpit Web 的界面安装 Red Hat Ceph Storage,则不需要这个过程。这是因为 Cockpit Ceph 安装程序会生成自己的 SSH 密钥。有关将 Cockpit SSH 密钥复制到集群中的所有节点的说明,请参见使用 Cockpit Web 界面安装 Red Hat Ceph Storage 一章。
先决条件
- 访问 Ansible 管理节点.
-
创建具有
sudo访问权限的 Ansible 用户.
流程
生成 SSH 密钥对,接受默认文件名并将密语留空:
ssh-keygen
[ansible@admin ~]$ ssh-keygenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将公钥复制到存储集群中的所有节点:
ssh-copy-id USER_NAME@HOST_NAME
ssh-copy-id USER_NAME@HOST_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow - 替换
- USER_NAME,使用具有 Ansible 用户的新用户名。
HOST_NAME,使用 Ceph 节点的主机名。
示例
ssh-copy-id ceph-admin@ceph-mon01
[ansible@admin ~]$ ssh-copy-id ceph-admin@ceph-mon01Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建用户的 SSH
config文件 :touch ~/.ssh/config
[ansible@admin ~]$ touch ~/.ssh/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 打开并编辑
config文件。为存储集群中每个节点的Hostname和User选项设置值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 替换
- HOST_NAME,使用 Ceph 节点的主机名。
USER_NAME,使用具有 Ansible 用户的新用户名。
示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要通过配置
~/.ssh/config文件,您不必在每次执行ansible-playbook命令时指定-u USER_NAME选项。
为
~/.ssh/config文件设置正确的文件权限:chmod 600 ~/.ssh/config
[admin@admin ~]$ chmod 600 ~/.ssh/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
-
ssh_config(5)手册页面。 - 请参阅 Red Hat Enterprise Linux 8 安全网络中的使用 OpenSSH 在两个系统间使用安全通信一章。