惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
B
Blog
P
Proofpoint News Feed
美团技术团队
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
有赞技术团队
有赞技术团队
小众软件
小众软件
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
罗磊的独立博客
L
LangChain Blog
GbyAI
GbyAI
腾讯CDC
T
The Blog of Author Tim Ferriss
Microsoft Security Blog
Microsoft Security Blog

博客园 - 记得承诺过

PGSQL 数据恢复 pgSQL备份 流程审批节点审批信息 PeopleSoft网关 openclaw的记忆机制 会话机制及子AGENT和独立AGENT openclaw的几个MD文件 OPENCLAWW安装 MCP server client交互,MCP tools鉴权 Python环境及Nodejs管理 linux 权限chmod -chown-chgrp 查询应页面的权限 获取上一行记录lag ORACLE SQLplus 登录 数据库性能优化 PeopleSoft translate value 排序 PeopleSoft Excel To CI Oracle sql function LISTAGG和字符替换 regexp_replace 据库都有哪些锁 然后 Kill session PeopleSoft Rich Text Boxes上定制Tool Bars Oracle 多行变一列的方法 Datatypes translation between Oracle and SQL Server 子节点,子部门的写法 peoplesoft SQR language
Linux 两台服务器 SSH 免密登录完整配置文档(含最终测试\+rs...
记得承诺过 · 2026-05-13 · via 博客园 - 记得承诺过

## 一、环境说明

A服务器:客户端(发起登录、发起rsync)

B服务器:服务端(被登录、被同步)

适用用户:**root 用户 / 普通用户(oracle、app 等)**

核心原理:客户端生成 RSA 公私钥,将公钥放入服务端对应用户的 `authorized\_keys`,实现无密码登录。

## 二、客户端 A 操作(任意用户)

切换到需要免密的用户(示例为 oracle,root 同理)

```Plain Text

su - oracle

```

### 1\. 生成 RSA 密钥

全程直接回车,不设置密钥密码、不修改路径

```Plain Text

ssh-keygen -t rsa

```

### 2\. 一键推送公钥到 B 服务器(推荐)

默认22端口:

```Plain Text

ssh-copy-id oracle@B服务器IP

```

自定义端口(示例端口58404):

```Plain Text

ssh-copy-id -p 58404 oracle@B服务器IP

```

输入一次 B 服务器对应用户密码,自动完成授权。

### 3\. 无 ssh\-copy\-id 手动配置方案

1)A 查看公钥并复制全部内容

```Plain Text

cat ~/.ssh/id_rsa.pub

```

2)登录 B 服务器,切换对应用户,创建授权文件

```Plain Text

su - oracle

mkdir -p ~/.ssh

vim ~/.ssh/authorized_keys

```

粘贴公钥(**保证一整行、无换行、无空格乱码**)

## 三、服务端 B 关键权限配置(必做,90%报错根源)

无论 root / 普通用户,权限必须严格如下,否则免密失效

```Plain Text

# 普通用户(oracle)

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

chown -R oracle:oracle ~/.ssh

# root 用户专用

chmod 700 /root/.ssh

chmod 600 /root/.ssh/authorized_keys

chown -R root:root /root/.ssh

```

### 可选关闭拦截(排查必备)

```Plain Text

# 临时关闭SELinux(重启失效)

setenforce 0

# 永久关闭(可选)

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

```

### SSH 配置检查(B服务器)

确保开启公钥登录、允许root登录(按需)

```Plain Text

grep -E "PubkeyAuthentication|PermitRootLogin" /etc/ssh/sshd_config

```

确保参数为:

```Plain Text

PubkeyAuthentication yes

PermitRootLogin yes

```

修改后重启ssh:

```Plain Text

systemctl restart sshd || service sshd restart

```

## 四、标准最终测试方法(必做)

**在 A 服务器当前免密用户下执行**

### 1\. 基础免密登录测试

```Plain Text

# 默认22端口

ssh oracle@B服务器IP

# 自定义端口

ssh -p 58404 oracle@B服务器IP

```

✅ 无需输入密码直接登录 = 免密配置成功

### 2\. 详细debug测试(排查报错专用)

```Plain Text

ssh -v -p 58404 oracle@B服务器IP

```

出现 **Authentication succeeded \(publickey\)** 代表认证100%成功

### 3\. Rsync 免密传输测试(生产常用)

自定义端口完整命令(可模糊匹配文件)

```Plain Text

# 单个文件

rsync -avzP -e 'ssh -p 58404' /本地路径/文件名 oracle@BIP:/目标路径/

# 模糊匹配文件

rsync -avzP -e 'ssh -p 58404' /本地路径/*关键字* oracle@BIP:/目标路径/

```

出现 **speedup is x\.xx** 代表传输完成、无报错。

## 五、常见报错与解决方案

### 1\. Connection refused

原因:B服务器sshd未启动 / 端口错误 / 防火墙拦截

解决:启动sshd、放行22端口、核对端口

### 2\. Permission denied \(publickey\)

TOP3原因:

1)\.ssh目录/authorized\_keys 权限不是700/600

2)公钥粘贴换行、空格、格式错乱

3)SELinux拦截、用户不对应

### 3\. rsync: command not found

原因:B服务器未安装rsync

解决:`yum install \-y rsync`

## 六、关键总结

1\. 免密核心:**哪个用户登录,密钥就配哪个用户的家目录**

2\. 权限铁律:**\.ssh=700 、authorized\_keys=600**

3\. 验证标准:ssh无密码登录 \+ rsync正常传输 双验证才算完成