🧰 VSCode Remote-SSH 连接失败修复(权限问题)
❗ 问题现象
在使用 VSCode Remote-SSH 连接远程服务器时出现报错:
bash
Bad owner or permissions on ~/.ssh/config
导致 SSH 连接直接失败。
🔍 问题原因
OpenSSH 对 SSH 配置文件有严格的安全限制:
.ssh/config、私钥等文件必须是私有权限- 如果权限过于开放(如 644 / 777),会被认为存在安全风险
- SSH 会直接拒绝连接(防止密钥泄露或被篡改)
✅ 一键修复命令
bash
# 设置 .ssh 目录权限(仅自己可访问)
chmod 700 ~/.ssh
# 设置 config 文件权限(仅自己可读写)
chmod 600 ~/.ssh/config
# 设置公钥权限(允许读取)
chmod 644 ~/.ssh/*.pub
📌 权限说明
| 命令 | 含义 | 权限解释 |
|---|---|---|
chmod 700 ~/.ssh |
目录权限 | rwx------(仅 owner 可访问) |
chmod 600 ~/.ssh/config |
配置文件 | rw-------(仅 owner 可读写) |
chmod 644 ~/.ssh/*.pub |
公钥文件 | rw-r--r--(所有人可读) |
🧠 权限规则速记
- 目录:700
- 私密文件(config / 私钥):600
- 公钥:644
👉 口诀:
目录 700,私密 600,公钥 644
🔧 补充排查(如果仍失败)
1️⃣ 检查文件归属
bash
ls -l ~/.ssh
如果 owner 不是当前用户:
bash
sudo chown -R $(whoami):$(whoami) ~/.ssh
2️⃣ 手动测试 SSH
bash
ssh -v <your_ip>
🎯 本质原理(面试加分点)
-
SSH 配置文件涉及:
- 私钥
- 登录规则
- 代理配置
-
若权限过宽:
- 可能被其他用户读取或篡改
-
OpenSSH 采用强制安全策略:
- 不安全 → 直接拒绝连接
✅ 结论
该问题属于:
🔐 SSH 安全权限限制问题(非网络 / 非 OpenSSL 问题)
修复权限即可正常连接 ✅