13.3. 更新 OpenStack 环境中的 SSH 密钥
另外,在以下情况下,您必须更新 SSH 密钥少于 2048 位:
- 在从 RHOSP 16.2 升级到 17.1 的过程中,您要将 Red Hat OpenStack Platform (RHOSP)集群升级到 RHEL 9.2
- 从 RHOSP 17.0 或 17.1 次版本更新到最新的 RHOSP 17.1 次版本
运行 ssh_key_rotation.yaml
Ansible Playbook,以安全地自动轮转 SSH 密钥。在 overcloud 上,备份密钥存储在以下目录中:
/home/{{ ansible_user_id }}/backup_keys/{{ ansible_date_time.epoch }}/authorized_keys"
先决条件
- 您有一个完全安装的 RHOSP 环境。
流程
登录到 RHOSP director:
ssh stack@director
运行 ansible-playbook
ssh_key_rotation.yaml
:$ ansible-playbook \ -i /home/stack/overcloud-deploy/<stack_name>/tripleo-ansible-inventory.yaml \ 1 -e undercloud_backup_folder=/home/stack/overcloud_backup_keys \ 2 -e stack_name=<stack_name> \ 3 /usr/share/ansible/tripleo-playbooks/ssh_key_rotation.yaml
- 1
- 将
<stack_name
> 替换为 overcloud 堆栈的名称。 - 2
- 在
堆栈
主目录中指定您选择的备份目录。 - 3
- 找到包含 SSH 密钥路径的文件。如果 playbook 无法找到 SSH 密钥,您可以通过设置
keys_folder
和keys_name
参数来指定 SSH 密钥位置,而不 设置 <stack_name>
参数。例如,如果 SSH 密钥位置是/home/stack/.ssh/id_rsa
,请设置以下值:-
keys_folder=/home/stack/.ssh
keys_name=id_rsa
注意如果您有单单元部署,已完成此步骤。如果您有多个单元,则必须继续。
-
对您拥有的每个额外单元重新运行 playbook:
ansible-playbook \ -i /home/stack/overcloud-deploy/<stack_name>/tripleo-ansible-inventory.yaml \ 1 -e stack_name=<stack_name> \ 2 -e rotate_undercloud_key=false \ 3 -e ansible_ssh_private_key_file=/home/stack/overcloud_backup_keys/id_rsa 4 tripleo-ansible/playbooks/ssh_key_rotation.yaml
- 1
- 将
<stack_name
> 替换为单元的堆栈名称。每个单元都有不同的名称。 - 2
- 找到包含 SSH 密钥路径的文件。如果 playbook 无法找到 SSH 密钥,您可以通过设置
keys_folder
和keys_name
参数来指定 SSH 密钥位置,而不 设置 <stack_name>
参数。例如,如果 SSH 密钥位置是/home/stack/.ssh/id_rsa
,请设置以下值:-
keys_folder=/home/stack/.ssh
-
keys_name=id_rsa
-
- 3
- 您必须通过将
rotate_undercloud_key
参数设置为false
来确保 undercloud 密钥 不会被 轮转。 - 4
- 指向 SSH 备份密钥,以便在轮转旧 SSH 密钥后向其他单元中的 Compute 主机进行身份验证。