事件起因:因openssh低版本有0day漏洞,所以尝试编译升级,没有快照直接上去一把梭。
我那么大一个服务呢?拉不起来了?
只能进入VNC尝试手动重装:
先删除所有openssh文件,卸载原有服务和配置文件
sudo apt-get purge openssh-server
find / -name "openssh*" | xargs rm -rf
重新安装服务,并启动
sudo apt-get install openssh-server
sudo systemctl start sshd
然而在这里我发现服务进程并没有启动,报错:
Failed to start ssh.service: Unit ssh.service is masked.
Failed to start sshd.service: Unit sshd.service is masked.
通常表示 SSH 服务已被禁用或者 systemd 服务单元被 “mask”(封锁)了,我尝试解封
sudo systemctl unmask ssh.service
sudo systemctl unmask sshd.service
然后重启服务,查看状态
sudo systemctl start sshd
sudo systemctl status sshd
这下似乎是启动起来了,回显:
ssh.service - LSB: OpenBSD Secure Shell server
Loaded: loaded (/etc/init.d/ssh; generated)
Active: active (exited) since Wed 2023-10-25 02:30:00 CST; 1min 56s ago
Docs: man:systemd-sysv-generator(8)
Process: 17303 ExecStart=/etc/init.d/ssh start (code=exited, status=0/SUCCESS)
CPU: 2ms
Oct 25 02:30:00 ryzen-vps systemd[1]: Starting LSB: OpenBSD Secure Shell server...
Oct 25 02:30:00 ryzen-vps systemd[1]: Started LSB: OpenBSD Secure Shell server.
但是我发现没有sshd进程在监听端口!
sudo netstat -tuln | grep ssh
并没有任何回显!果然事情没有这么顺利
我一时毫无头绪,然后看了一眼/etc/ssh目录下,发现是空文件夹,没有任何ssh的配置文件!我虽然用的是 purge 命令删除了服务和配置文件,但是安装新安装openssh它不会自动生成新的配置文件吗???很怪。
所以只能手动修复,先创建配置文件
sudo mkdir /etc/ssh
sudo nano /etc/ssh/sshd_config
写入一个基本配置参数
Port 22
Protocol 2
PermitRootLogin yes
PasswordAuthentication yes
手动生成 SSH 主机密钥:
sudo ssh-keygen -A
尝试再次启动服务
systemctl restart sshd
大功告成!
所以要怎么才能正常升级