无公网IP且无公钥时如何连接实例?及实例创建连接最佳实践
无公网IP且无公钥时的实例连接方法
如果你的实例既没有公网IP,又没配置公钥,可以通过以下几种方式连接:
1. 云服务商控制台的VNC/串行控制台
几乎所有主流云厂商的控制台都提供网页版的VNC或串行控制台入口,不需要依赖公网IP或密钥。只要你拥有实例的控制台操作权限,就能直接通过浏览器进入实例的命令行界面。进入后可以:
- 执行
passwd命令设置实例的登录密码 - 手动将公钥写入
~/.ssh/authorized_keys文件,后续即可用密钥登录
2. 内网跳板机中转
如果你的VPC/内网里有其他带公网IP的实例(跳板机),先通过公网连接跳板机(跳板机允许密码登录就用密码,有密钥就用密钥),再从跳板机通过内网IP连接目标实例:
- 若目标实例允许密码登录,直接执行
ssh 用户名@目标实例内网IP并输入密码 - 若目标实例禁用密码登录,可先在跳板机生成临时密钥对,再通过控制台VNC将公钥传到目标实例的
authorized_keys中,之后用密钥连接
3. 企业内网VPN/专线接入
如果企业内网通过VPN或专线与云内网打通,直接从企业内网机器用内网IP连接目标实例,流程和跳板机中转类似,根据实例登录配置选择密码或临时密钥即可。
创建与连接实例的最佳实践
创建实例时的最佳实践
- 强制绑定密钥对,禁用密码登录:创建实例时就指定密钥对,同时修改
/etc/ssh/sshd_config中的PasswordAuthentication no禁用密码登录,从源头提升安全性 - 合理规划网络:不需要公网访问的实例放在私有子网,同时保留跳板机或控制台访问通道,避免实例孤立无法运维
- 提前配置安全组:只开放必要端口,内网访问限制在指定IP段(如跳板机IP、企业内网段),非必要不开放公网端口
- 用初始化脚本预配置:创建实例时通过用户数据脚本(如Cloud-Init)创建带sudo权限的普通用户、安装基础工具,减少手动操作的失误
连接实例时的最佳实践
- 优先使用内网连接:只要在内网环境(跳板机、企业内网),就用内网IP连接,比公网更安全且延迟更低
- 禁用root直接登录:使用带sudo权限的普通用户登录,避免root账号泄露带来的风险
- 用ssh-agent管理密钥:通过
ssh-add将密钥加入代理,避免每次连接输入密钥密码,同时定期轮换密钥对 - 统一管理连接信息:整理实例的内网IP、所属子网、跳板机地址等信息共享给团队,避免重复查找或配置错误
内容的提问来源于stack exchange,提问作者sai
相关产品推荐
相关产品推荐

