我有一台目前无法实际访问的机器。现在这台机器没有响应,从某种意义上说,当我尝试通过 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 会话。如果你的主机是这样配置的,那么这个可能工作:
- 在本地系统上,创建一个包含文本“reisub”的文件。
- 与远程系统建立 SFTP 连接。
- 导航到该
/proc
目录并将文件放入sysrq-trigger
.
答案2
看起来磁盘可能已经死了。如果你不能使用 ssh,你就不太可能使用 sftp。这就是为什么有IPMI,您可以通过IPMI或SNMP访问主板管理或机箱管理控制器吗?