---
title: "（可选）设置无密码 SSH 登录 - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: （可选）设置无密码 SSH 登录 名词解释 中控机器 安装 obd 的机器，用于管理 OceanBase 集群，存储 OceanBase 集群安装包和集群配置信息。 目标机器 安装 OceanBase 数据库的机器。 操作步骤 在中控机器中按以下步骤设置无密码 SSH 登录，配置后，中控机器可以无密码 SSH 登录目…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.5.0

# （可选）设置无密码 SSH 登录

更新时间：2026-03-07 08:56:57

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/400.deploy/500.deploy-oceanbase-database-community-edition/200.local-deployment/200.environment-and-configuration-checks/200.use-ssh-to-log-on-without-password.md)  

## 名词解释

- 中控机器

  安装 obd 的机器，用于管理 OceanBase 集群，存储 OceanBase 集群安装包和集群配置信息。
 - 目标机器

  安装 OceanBase 数据库的机器。

## 操作步骤

在中控机器中按以下步骤设置无密码 SSH 登录，配置后，中控机器可以无密码 SSH 登录目标机器。

#### 说明

此处需要为所用用户配置免密登录。如计划使用 admin 用户部署 OceanBase 数据库，则需要为目标机器的 admin 用户配置免密。建议使用 admin 用户部署 OceanBase 数据库。

1. 在中控机器上运行以下命令查看密钥是否存在：

   ```shell
   [admin@test001 ~]$ ls ~/.ssh/id_rsa.pub

   ```

   如结果显示密钥已经存在，则无需生成新的密钥。
 2. （可选）在中控机器上运行以下命令生成 SSH 公钥和私钥：

   ```shell
   [admin@test001 ~]$ ssh-keygen -t rsa

   ```
 3. 将中控机器的公钥复制到目标机器的 `authorized_keys` 文件中：

   ```shell
   [admin@test001 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub <user>@<server_ip>

   ```

### （附录）脚本参考

当多台目标机器使用同一个登录密码时，推荐您在中控机器中使用以下脚本为多台目标机器配置 SSH 免密。

#### 注意

- 执行以下脚本需要拥有 sudo 权限。
 - 您必须将脚本前两行的 **SERVERS** 列表和 **PASSWORD** 替换成您自己的实际机器列表和密码。

```shell
#!/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

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
