将 ssh 会话从一个 Linux 机器迁移到另一个 Linux 机器作为故障转移

将 ssh 会话从一个 Linux 机器迁移到另一个 Linux 机器作为故障转移

我一直在寻找一种解决方案,允许将 ssh 会话从一个 Linux 机器迁移到另一个。我更喜欢开源或免费的解决方案,但我甚至找不到商业解决方案。我怀疑这是不可能的,因为 ssh 会话与 tty、端口等紧密相关。

基本上,我有一个使用 haproxy 和 keepalived 的设置,它将传入的 ssh 连接移交给 Linux 机器池(主机)中的一个 Linux 机器,而 haproxy 仍然充当反向代理/负载平衡器,它不允许从 ssh 客户端直接连接到 ssh 服务器(我在其他地方读到这是可能的)。但是,如果 Linux 机器发生故障,则无法将该 Linux 机器上的 ssh 会话迁移到其中一个幸存的机器上。

当然,用户可以尝试重新连接并获得新的 ssh 会话,但这不是我们的用户想要的。

有人有解决办法吗?

答案1

也许,只是也许,你可以在 Linux 上使用 heartbeat 来做到这一点。它适用于其他东西……我已经用 NFS 做到了。不过这让我怀疑加密是否会有问题,因为客户端会故障转移到不同的守护进程,也许两个系统不会相互信任。如果它是一种未加密的协议,比如 rsh/rlogin,也许会出现问题。

我之前写过一篇文档,解释了一些心跳设置,尽管该文档与 HA NFS 有关。也许您可以从中学到一些东西。

https://www.howtoforge.com/high-availability-nfs-with-drbd-plus-heartbeat

http://linux-ha.org/wiki/Heartbeat

之前也有人问过这个问题,答案也差不多

故障转移/冗余 SSH

相关内容