通过 SSH 连接 OCI Linux 实例
从 Windows、macOS 或 Linux 使用正确用户、私钥和主机指纹首次连接 OCI Linux 实例。
#type / howto
#status / growing
#tech / network
#resource / oracle-cloud
#resource / ssh
#protocol / ssh
#platform / server
[!abstract] 成功状态 本机能够用指定私钥登录正确的实例,主机指纹已验证,远端用户具有预期 sudo 权限,并且没有通过聊天或命令行泄露私钥。
通过 SSH 连接 OCI Linux 实例
前置条件
- 实例 Running;
- VNIC 有可访问的公网 IPv4/IPv6;
- NSG/Security List 允许你的来源访问 SSH;
- 私钥在本机安全路径;
- 知道镜像默认用户。
常见默认用户:Ubuntu 是 ubuntu,Oracle Linux 通常是 opc。不要默认直接用 root。
1. 检查本地密钥
PowerShell:
Get-Item $env:USERPROFILE\.ssh\oci_a1
ssh-keygen -lf $env:USERPROFILE\.ssh\oci_a1.pub
Linux/macOS:
chmod 600 ~/.ssh/oci_a1
ssh-keygen -lf ~/.ssh/oci_a1.pub
私钥内容不应出现在终端历史、截图、工单或 AI 对话中。AI 只需要密钥文件路径。
2. 首次连接
Ubuntu 示例:
ssh -i ~/.ssh/oci_a1 -o IdentitiesOnly=yes ubuntu@203.0.x.x
Windows PowerShell 路径:
ssh -i "$env:USERPROFILE\.ssh\oci_a1" -o IdentitiesOnly=yes ubuntu@203.0.x.x
自定义端口使用 -p 2222。注意小写 -p 是端口,大写 -P 常用于其他工具。
3. 验证主机指纹
首次连接会显示 ED25519/RSA 主机密钥指纹。不要无脑输入 yes:
- 与 OCI 控制台、串行控制台或可信通道取得的指纹比较;
- 确认 IP 确实属于刚创建的实例;
- 记录实例重装会改变主机密钥。
登录后可在服务器查看:
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
4. 验证远端身份和权限
whoami
hostnamectl
cat /etc/os-release
uname -m
sudo -n true && echo 'passwordless sudo available' || sudo -v
ip address
核对主机名、发行版、架构和 IP,防止连错机器后执行初始化。
5. 写入 SSH config
本机 ~/.ssh/config:
Host oci-a1
HostName 203.0.x.x
User ubuntu
Port 22
IdentityFile ~/.ssh/oci_a1
IdentitiesOnly yes
ServerAliveInterval 30
ServerAliveCountMax 3
以后使用:
ssh oci-a1
scp ./file.txt oci-a1:/tmp/
不要在 config 中写私钥口令。
6. 为私钥设置口令
若现有私钥没有口令:
ssh-keygen -p -f ~/.ssh/oci_a1
使用 ssh-agent 缓存解锁状态,而不是复制出无口令副本。
验证清单
- 主机指纹已通过独立来源核对
-
whoami是预期用户而非意外 root -
uname -m与所选 Shape 一致 - sudo 可用
-
~/.ssh/config别名可连接 - 私钥未上传到服务器或仓库
- OCI 控制台和串行控制台恢复入口仍可用
常见问题
Permission denied (publickey)
检查用户是否正确、密钥是否与创建实例时的公钥匹配、IdentitiesOnly、本地权限和服务器 authorized_keys。见 OCI SSH 与端口连通性排查。
Connection timed out
通常是地址、路由、云规则或主机防火墙,不是密钥错误。
REMOTE HOST IDENTIFICATION HAS CHANGED
先确认是否重装、IP 被重新分配或存在中间人风险。确认合法变更后再执行:
ssh-keygen -R 203.0.x.x
不要把“删除 known_hosts”当作默认修复。
Related notes
- 所属 MOC:甲骨文云服务器 MOC
- SSH 原理:SSH、SSH 密钥连接
- 下一步:安全加固 OCI Linux 服务器