首批通过分布式安全可靠测评,为关键业务系统打造
(可选)设置无密码 SSH 登录
更新时间:2026-03-07 08:56:57
名词解释
中控机器
安装 obd 的机器,用于管理 OceanBase 集群,存储 OceanBase 集群安装包和集群配置信息。
目标机器
安装 OceanBase 数据库的机器。
操作步骤
在中控机器中按以下步骤设置无密码 SSH 登录,配置后,中控机器可以无密码 SSH 登录目标机器。
说明
此处需要为所用用户配置免密登录。如计划使用 admin 用户部署 OceanBase 数据库,则需要为目标机器的 admin 用户配置免密。建议使用 admin 用户部署 OceanBase 数据库。
在中控机器上运行以下命令查看密钥是否存在:
[admin@test001 ~]$ ls ~/.ssh/id_rsa.pub如结果显示密钥已经存在,则无需生成新的密钥。
(可选)在中控机器上运行以下命令生成 SSH 公钥和私钥:
[admin@test001 ~]$ ssh-keygen -t rsa将中控机器的公钥复制到目标机器的
authorized_keys文件中:[admin@test001 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<server_ip>
(附录)脚本参考
当多台目标机器使用同一个登录密码时,推荐您在中控机器中使用以下脚本为多台目标机器配置 SSH 免密。
注意
执行以下脚本需要拥有 sudo 权限。
您必须将脚本前两行的 SERVERS 列表和 PASSWORD 替换成您自己的实际机器列表和密码。
#!/usr/bin/bash
SERVERS=("<user>@<server_ip1>" "<user>@<server_ip2>" "<user>@<server_ip3>")
PASSWORD="******"
keygen() {
sudo yum -y install expect
expect -c "
spawn ssh-keygen -t rsa
expect {
*(~/.ssh/id_rsa):* { send -- \r;exp_continue}
*(y/n)* { send -- y\r;exp_continue}
*Enter* { send -- \r;exp_continue}
*(y/n)* { send -- y\r;exp_continue}
*Enter* { send -- \r;exp_continue}
eof {exit 0}
}
expect eof
"
}
copy(){
expect -c "
set timeout -1
spawn ssh-copy-id $1
expect {
*(yes/no)* { send -- yes\r; exp_continue }
*password:* { send -- $PASSWORD\r; exp_continue}
eof {exit 0}
}
expect eof
"
}
ssh_copy_id_to_all(){
keygen ;
for host in ${SERVERS[@]}
do
copy $host
done
}
ssh_copy_id_to_all