手里还有两个永久免费的甲骨文云VPS,装的Ubuntu系统,开服的时候还教过大家Oracle Cloud SSH使用密码登录,前不久发现SSH突然登不上了,还以为甲骨文给回收了。后来一番探究,终于解决了。
得到的结论是,永久免费的东西,或者说甲骨文家的东西真的挺糟心的。
排查过程太曲折就不说了,直接说最后的解决方法:
用Cloud Shell或者Web上带的终端登录到服务器上,首先核对sshd和ssh服务有没有在运行。
sudo systemctl status ssh
sudo systemctl status sshd如果这俩没在运行,就先安装
sudo apt update
sudo apt install openssh-server设置开机启动
sudo systemctl start sshd
sudo systemctl enable sshd用你的编辑器编辑sshd配置文件
nano /etc/ssh/sshd_config确保以下行没有被注释,并且端口设置正确:
Port 22
PermitRootLogin yes
PasswordAuthentication yes保存配置文件后重启服务
sudo systemctl restart sshd
sudo systemctl restart ssh启用防火墙
sudo ufw enable防火墙允许22端口入站,如果你把SSH改成别的端口了就相应替换
sudo ufw allow 22/tcp
sudo ufw allow ssh
sudo ufw reload但是这些常规操作不是大家都会吗?Oracle就是那个你照着走一遍依然还是连不上的东家。
下面骚操作来了:
检查你服务器里以下文件夹
cd /etc/ssh/sshd_config.d如果你发现里面有个文件 60-cloudimg-settings.conf 文件里的内容是:
PasswordAuthentication no恭喜你,找到了阻止你远程访问的元凶。
看文件名是云镜像里带的,但是由于之前我是成功远程登录过SSH的,所以这个文件极大可能是Oracle后期扫描给添进去的。
删了这个文件,一切就正常了。
rm /etc/ssh/sshd_config.d/60-cloudimg-settings.conf恶心吧?