使用 sshfs 会话在远程运行命令

使用 sshfs 会话在远程运行命令

远程服务器上的 SSH 进程发生了一些问题,因此现在在尝试连接时会出现以下错误:

kex_exchange_identification: read: Connection reset by peer

看来 SSH 守护进程只需要重新启动即可。

但问题是除了通过 SSH 之外无法访问服务器。唯一的选择是突然重新启动,这是不可取的。

但是,远程服务器的文件系统是通过 sshfs 在本地安装的,并且可以继续正常工作。

有没有办法使用现有的 sshfs 会话在远程运行命令?

有关的:

答案1

sshfs是一个“文件系统”,并且可以完成文件系统的大部分功能。

根据您sshfs可以访问的目录,您可以:

  • 编写一个脚本来重新启动sshd(使用完整路径,/bin/ls而不是ls),
  • 将其存储在服务器上(通过sshfs
  • 为远程系统手工编织一个batchat、 或crontab队列条目来调用脚本。
  • 将您的作业放入队列目录中。
  • 等待。

您在远程服务器上的用户名是否sudo已启用?在运行 Linux 上研究atbatch、 和的工作原理cron,然后再在远程服务器上破坏它们。

OTOH,无法通过 SSH 访问的日益不可取的情况最终可能超过重新启动的不可取的情况。

利用这段时间重新设计您的流程。

就在我对远程系统进行俄罗斯轮盘赌更改之前,我将一个at作业排入队列,该作业恢复旧的但有效的配置,以在“现在 + 15 分钟”运行。然后,我有 15 分钟的时间扣动扳机,“找出答案”,重新连接/登录,然后取消作业at。如果我不这样做/不能,旧配置将在 15 分钟内恢复。

当然,这需要了解远程系统、所做的更改(apt-get changelog packagename)以及编写撤消脚本。它还有助于缩小“撤消”的范围 - 许多应用程序更新不会带来连接/访问的风险,并且(可能)不需要撤消。

相关内容