フェイルオーバーとして、SSH セッションを Linux ボックスから別の Linux ボックスに移行する

フェイルオーバーとして、SSH セッションを Linux ボックスから別の Linux ボックスに移行する

私は、SSH セッションを Linux ボックス間で移行できるソリューションを探していました。オープンソースまたは無料のソリューションが望ましいのですが、商用ソリューションも見つかりません。SSH セッションは tty、ポートなどに密接に関連しているため、これは不可能だと思います。

基本的に、私は keepalived 付きの haproxy を利用するセットアップを持っています。これは、着信 ssh 接続を Linux ボックス (ホスト) のプール内の 1 つの Linux ボックスに渡しますが、haproxy はリバース プロキシ/ロード バランサとして機能し、ssh クライアントから ssh サーバーへの直接接続を許可しません (他の場所でこれが可能であると読みました)。ただし、Linux ボックスで障害が発生した場合、その Linux ボックスの ssh セッションを残りのボックスの 1 つに移行する方法はありません。

確かに、ユーザーは再接続を試み、新しい SSH セッションを取得できますが、これはユーザーが望んでいることではありません。

誰か解決策を持っていますか?

答え1

おそらく、Linux のハートビートでこれを行うことができます。他のものでも機能します... NFS で実行しました。ただし、クライアントが別のデーモンにフェールオーバーし、両方のシステムがお互いを信頼しない可能性があるため、暗号化が原因で問題が発生するのではないかと疑問に思います。rsh/rlogin などの暗号化されていないプロトコルであれば、おそらく問題が発生するでしょう。

以前、ハートビートの設定の一部を説明するドキュメントを書きました。このドキュメントは HA NFS に関連しています。そこから何か得られるものがあるかもしれません。

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

http://linux-ha.org/wiki/ハートビート

以前にも誰かが同じ質問をしましたが、答えはほぼ同じでした

フェイルオーバー/冗長SSH

関連情報