无法通过 SSH 连接到服务器

无法通过 SSH 连接到服务器

我正在运行 RHEL 6.0,我不小心将 /bin、/boot、/cgroup、console.txt、/data、/dev、/etc 移到了另一个文件夹。我想我已经设法将这些文件夹移回原位,但现在我无法使用 SSH 连接到服务器,但可以通过 VNC 访问服务器。

当我尝试使用另一台服务器的终端连接到服务器时,出现错误

ssh_exchange_identification: Connection closed by remote host

我目前仍通过 SSH 连接到服务器(尚未关闭窗口),并且仍能正常访问。但如果我尝试从当前会话打开新的 SSH 终端,我会看到

/bin/bash: Permission denied

如果我尝试从当前会话打开一个新的 SSH 文件传输窗口,我会收到错误

File transfer server could not be started or it exited unexpectedly. 
Exit value 0 was returned. Most likely the sftp-server is not in the path of the user on the server-side

我检查过了

Subsystem  sftp  /usr/libexec/openssh/sftp-server

与输出的路径相同

locate sftp-server

此外,当我尝试重新启动 sshd 时,出现错误

Couldn't open /dev/null: Permission denied

但是我的 /dev/null 有权限

crw-rw-rw-

对于根,根。

我该如何解决这个问题?

ETA:感谢您的帮助!我可以通过直接运行应用程序来启动 ssh

/usr/sbin/sshd

即使 openssh-daemon 的状态仍然是“停止”。

答案1

不幸的是,您最好的做法是重新安装操作系统。理论上,修复这个特定的权限错误是可能的,但您仍然有数百个处于未知状态的其他文件和文件夹,其中任何一个都可能导致将来出现故障。

这是恢复稳定、可靠系统的唯一途径。

答案2

正如其他人所说,完全恢复系统的唯一安全方法是从备份中恢复。

如果您无法做到这一点,您可以检查 RPM DB(rpm -Va)以查看哪些文件仍然丢失和/或具有错误的权限。

例如这个帖子关于如何使用 rpm 恢复权限。

祝你好运。

答案3

由于事情显然没有按预期进行,而且您不确定是否已经完全消除了因移动东西而造成的任何损害,我建议此时唯一明智的做法是从备份中恢复系统。任何其他做法都可能使您的系统处于不可预测的状态。

相关内容