ssh && apt-get 问题,需要建议

ssh && apt-get 问题,需要建议

我决定掸掉我的 Beaglebone Black Rev.C 上的灰尘,并想在做任何事情之前,我应该把所有东西都更新到最新。我使用新的 Debian 8.3 映像创建了一张 SD 卡并安装了它。没问题。

在我的 Windows 8.1 机器上使用 TeraTerm ssh 进入 BBB 一直以失败告终,我显然被 ssh 服务器启动了。啊。因此,我启动了一个 Kali Linux 虚拟机并从那里进行 ssh。几乎相同的。编辑/etc/ssh/ssh_config并添加ServerAliveInterval 60。仍然被掉落,但跑到apt-get update完成而没有被掉落。接下来,我尝试了apt-get upgrade,它嘎嘎地走了很​​长一段时间,然后把我掉了下来。

已经有一段时间了,LAN 上似乎没有流量表明apt-get upgrade仍在执行任何操作,但/var/lib/dpkg/已被锁定。该进程可能正在等待来自已蒸发的外壳的输入。

问题:

  1. 有没有办法礼貌地解决这个问题,或者我应该重新启动?
  2. 怎样才能阻止这种令人作呕的事情再次发生呢?我怎样才能确保我的 ssh 会话保持活动状态?

答案1

对我来说,这听起来像是您的升级重新启动了某种服务,从而断开了您的连接。或者,您只是松开连接,并且中间升级状态与系统发生冲突,导致需要重新启动。

通常我会认为网络管理器/接口已升级,并且发生了“服务网络重新启动”。

这里的问题是,当您的 ssh 会话关闭时,您在其中运行的程序/脚本/whatevs 也会关闭。这意味着,如果您运行 apt-get Upgrade,并且会话关闭,则升级会在 ssh 会话关闭的同时突然停止。

我建议在屏幕上运行升级(我认为这是可能的),或者将外部屏幕连接到 Beaglebone。

答案2

SSH实际上通常相当稳定。也许您的 SSHD 配置中有错误的设置(看不到它就无法判断),或者您的网络存在一些问题。作为解决方法,您可以尝试使用莫什与 SSH 相比,它在重新连接方面做得更好,即使您的 IP 发生变化或网络连接完全失败一段时间也是如此。

关闭/断开 SSH 连接时,通常情况下其中运行的进程被SIGHUP信号杀死。这意味着,apt-get很可能不再运行。
但是,要亲自检查一下,您可以随时运行ps aux | grep apt\\-get
无论如何,重新启动应该可以解决问题。

答案3

我怎样才能确保我的 ssh 会话保持活动状态?

在您的/etc/ssh/sshd_config输入中ClientAliveInterval 60,当然要重新启动 sshd 服务,这将防止您退出 SSH 会话。

答案4

screen我建议您在 ssh 登录远程主机时始终使用。

$ ssh -t username@hostname screen -D -RR 

如果您失去与 ssh 会话的连接,这没有问题,因为您可以再次运行相同的命令,然后您将返回到屏幕会话,而不会终止任何操作。

~/.ssh/config如果您将以下设置放入或中/etc/ssh/ssh_config,则ssh 会话保持活动时间不够长的问题应该可以解决:

ServerAliveInterval 60
ServerAliveCountMax 10

相关内容