配置计算节点之间的 SSH
本文分享自天翼云开发者社区《配置计算节点之间的SSH》,作者:y****n
如果在管理程序之间调整或迁移实例,可能会遇到 SSH(拒绝权限)错误。请确保每个节点都配置了 SSH 密钥验证,以便 Compute 服务可以通过 SSH 将磁盘移动到其他节点。
在计算节点之间共享密钥对的操作步骤如下:
1.在第一个节点上获取密钥对(公钥和私钥)。使用根密钥目录或生成新的密钥对,存放的位置在:/root/.ssh/id_rsa and /root/.ssh/id_rsa.pub。
#ssh-keygen
2.在第一个节点上执行 setenforce 0 命令将 SELinux 设置为允许模式。
#setenforce 0
3.在第一个节点为 nova 用户开启登录能力:
# usermod -s /bin/bash nova 切换到 nova 帐户。
# su nova
4.在第一个节点上,作为 root 用户,创建 SSH 所需要的文件夹,并将步骤 1 中获取的私钥放在该文件夹中:
# mkdir -p /var/lib/nova/.ssh
# mkdir /var/lib/nova/.ssh/authorized_keys
# cp <private key> /var/lib/nova/.ssh/id_rsa
# echo 'StrictHostKeyChecking no' >> /var/lib/nova/.ssh/config
# chmod 600 /var/lib/nova/.ssh/id_rsa /var/lib/nova/.ssh/authorized_keys
注意:由于几个计算节点之间不是互通的,只能通过 deploy 节点登录到不同计算节点,且执行 ssh-copy-id -i <public key> nova@remote-host 命令会报错误:Permission denied(publickey)。故采用直接将 public key 追加到本节点的 authorized_keys 文件夹中,再将所需文件拷贝到别的计算节点
5.在第一个节点上,将公钥安装到 authorized_keys 文件夹中
# cd /var/lib/nova/.ssh
# cat id_rsa.pub >> authorized_keys
6.打包第一个节点上/var/lib/nova/.ssh 下的所有文件,并拷贝到/home/secure/下
# cd /var/lib/nova/.ssh
# tar -zcvf key.tar.gz ./
# cp key.tar.gz /home/secure/
7.将第 6 步骤打包好的压缩包发送到 deploy 节点上
在 deploy 节点上执行:
# scp -P10000 secure@10.9.200.14:/home/secure/key.tar.gz ./ (secure@10.9.200.14 为第一个节点的信息)
8.再将这个 key.tar.gz 发送到其余计算节点
在 deploy 节点上执行:
# scp -P10000 key.tar.gz secure@10.9.200.15:/home/secure/
# scp -P10000 key.tar.gz secure@10.9.200.16:/home/secure/
...
在其余计算节点上重复步骤 9-12
9.执行 setenforce 0 命令将 SELinux 设置为允许模式。
#setenforce 0
10.为 nova 用户开启登录能力:
# usermod -s /bin/bash nova 切换到 nova 帐户。
# su nova
11.作为 root 用户,创建 SSH 所需要的文件夹
# mkdir -p /var/lib/nova/.ssh
12.将打包好的文件放到/var/lib/nova/.ssh 下
# mv /home/secure/key.tar.gz /var/lib/nova/.ssh
# cd /var/lib/nova/.ssh
# tar -zxvf chen.tar.gz ./
# chmod 600 /var/lib/nova/.ssh/id_rsa /var/lib/nova/.ssh/authorized_keys
# rm -rf key.*
13.在每个节点上将 ssh 连接的默认端口设置为 10000
# vi /etc/ssh/ssh_config
修改 Port 为 10000
14.在每个节点上重启 sshd 服务
# systemctl restart sshd
15.在每个节点上确保 nova 用户无需密码即可登录各节点:
# su nova
$ ssh *computeNodeAddress*
$ exit
16.在每个节点上以 root 用户重新启动 libvirt 和 Compute 服务:
# systemctl restart libvirtd.service
# systemctl restart openstack-nova-compute.service
评论