在无响应的机器上通过 ssh 重置

在无响应的机器上通过 ssh 重置

我有一台目前无法实际访问的机器。现在这台机器没有响应,从某种意义上说,当我尝试通过 ssh 登录时,输出是

/bin/bash: Input/output error

然后连接关闭。我想通过远程重置机器echo 'reisub' > /proc/sysrq-trigger(我相信这应该是可能的,因为内核和 ssh 仍在运行)。我尝试过以下方法

ssh -T <host> "echo 'reisub' > /proc/sysrq-trigger"

但 ssh 仍在尝试调用/bin/bash并给出相同的错误。有没有办法直接运行命令(通过 ssh)而不是先调用 bash?

答案1

几乎所有 UNIX 主机都使用开放SSH用于接收 ssh 连接的 SSH 服务器。当您连接到 OpenSSH sshd 并请求它运行命令时,它将始终使用您的登录 shell 来运行该命令。如果你运行:

ssh -T <host> "echo 'reisub' > /proc/sysrq-trigger"

那么 ssh 服务器将执行与此等效的操作:

$SHELL -c "echo 'reisub' > /proc/sysrq-trigger"

你的登录 shell 在哪里$SHELL——/bin/bash 或其他什么。

一个例外是 SSH 服务器可能配置为在不调用外部程序的情况下处理 SFTP 会话。如果你的主机是这样配置的,那么这个可能工作:

  1. 在本地系统上,创建一个包含文本“reisub”的文件。
  2. 与远程系统建立 SFTP 连接。
  3. 导航到该/proc目录并将文件放入sysrq-trigger.

答案2

看起来磁盘可能已经死了。如果你不能使用 ssh,你就不太可能使用 sftp。这就是为什么有IPMI,您可以通过IPMI或SNMP访问主板管理或机箱管理控制器吗?

相关内容