Oracle Cloud Ubuntu虚拟机修改默认SSH端口22后无法登录的解决求助
Oracle Cloud Ubuntu虚拟机修改默认SSH端口22后无法登录的解决求助
兄弟我完全懂你这种急得抓耳挠腮的心情——没备份就改SSH配置搞崩登录,还碰到云服务商支持甩锅让搜谷歌,简直倒霉到家了!我之前在Oracle Cloud免费层也踩过几乎一模一样的坑,给你几个实打实的解决思路,先别慌:
先靠串行控制台抢回系统控制权
这是Oracle Cloud虚拟机SSH挂了之后的救命稻草!进控制台找到你的虚拟机,点进「控制台连接」里的「启动串行控制台」,等个几十秒就能进到系统的终端界面,直接用你Ubuntu的用户名和密码登录就行(不管你之前是密钥还是密码登录,串行控制台都能直接连)。
登进去后按步骤排查:- 先检查SSH配置文件有没有写错:
cat /etc/ssh/sshd_config,确认Port 777的配置是不是格式正确(比如Port后面有没有空格、有没有被注释掉),要是不确定就先改回Port 22应急。 - 检查两层防火墙!这是Oracle Cloud最容易踩的坑:
- 系统层面:用
ufw status看看有没有允许777端口的规则,没有的话就加:ufw allow 777/tcp,然后ufw reload刷新。 - 云平台层面:回到控制台虚拟机对应的「虚拟云网络」,找到安全列表,添加入站规则,允许TCP协议的777端口(要是想临时用回22也一起加上)。
- 系统层面:用
- 重启SSH服务:
systemctl restart sshd,先在串行控制台里用ssh localhost -p 777测试能不能连,没问题再用PuTTY试远程连接。
- 先检查SSH配置文件有没有写错:
如果串行控制台也登不进,就用救援实例救数据
要是连串行控制台都搞不定(比如忘了系统用户名密码),那只能靠挂载磁盘救数据了:- 先在控制台停止出问题的虚拟机,然后到「附加的块存储」里把系统磁盘分离出来。
- 新建一个同区域的Oracle Cloud免费层Ubuntu虚拟机(反正免费,用完删了就行),把刚才分离的磁盘挂载到新机器上。
- 挂载完成后,你就能直接访问原磁盘里的所有文件了,先把重要数据拷贝出来存好,甚至可以直接修改原磁盘里的
/etc/ssh/sshd_config改回22端口,再把磁盘装回原来的虚拟机启动。
最后给你敲个警钟
以后改SSH端口这种操作,千万不要直接删原端口!先在sshd_config里同时保留22和新端口:Port 22 Port 777重启SSH后先测试新端口能正常登录,确认没问题再删掉
Port 22的配置,这样绝对不会出现改完直接断连的情况!
备注:内容来源于stack exchange,提问作者Naruto Uzumaki




