ssh连接服务器,有了ip和private key,还需要其它吗
通过 SSH 连接服务器,有了 IP 地址和 private key(私钥),还需要以下几点才能成功连接:
✅ 必备条件汇总:
条件 | 是否必须 | 说明 |
---|---|---|
✅ IP地址 | 是 | 服务器的公网 IP 地址 |
✅ 私钥文件(private key) | 是 | .pem 或 .ppk 文件,用于身份验证 |
✅ 用户名(如 ubuntu , root , ec2-user ) | 是 | 连接时需要提供正确的用户名 |
✅ SSH客户端工具 | 是 | 如 ssh 命令、PuTTY、VSCode Remote SSH 等 |
✅ 端口号(默认 22) | 否(默认值) | 如果服务器改了 SSH 端口,需要指定,如 -p 2222 |
✅ 私钥权限正确 | 是 | 私钥文件必须是 600 权限:chmod 600 key.pem |
✅ 服务器开启了 SSH 服务 | 是 | sshd 必须运行中,并允许你的 IP 连接 |
✅ 安全组/防火墙允许访问 | 是 | 云服务器必须开放 TCP 22 端口给你当前 IP 地址 |
🧪 示例连接命令(Linux / Mac / WSL / Git Bash)
ssh -i key.pem ubuntu@<服务器IP>
如果使用了非默认端口(如 2222):
ssh -i key.pem ubuntu@<服务器IP> -p 2222
💻 Windows 用户使用方式
-
Windows Terminal / Git Bash
同样用ssh -i
命令即可。 -
PuTTY(私钥需转换成
.ppk
)- 用
PuTTYgen
把.pem
转为.ppk
- 配置 Host/IP、用户名(如
ubuntu
)、端口(22),加载.ppk
私钥即可。
- 用
-
VSCode Remote SSH 插件
配置~/.ssh/config
文件:Host my-serverHostName 1.2.3.4User ubuntuIdentityFile ~/.ssh/key.pem
然后可以直接在 VSCode 左下角点击 “Remote SSH” 连接。
🧯 如果连接失败,可检查:
- 私钥权限是否太宽(应为 600)
- 用户名是否正确(常见默认用户如下)
云服务提供商 | 默认用户名 |
---|---|
AWS EC2(Ubuntu) | ubuntu |
AWS EC2(Amazon Linux) | ec2-user |
DigitalOcean | root |
Google Cloud | 通常是你账户名 |
Aliyun | root 或 ubuntu |
- 服务器防火墙是否放行你的 IP 地址
- 是否设置了
AllowUsers
等 SSH 限制