リモートシステムが予期せず切断されたときにSSHプロセスがリモートマシンで強制終了されない


8

答えを見つけることができなかった質問があります。私は2台のコンピューターを使用しており、どちらもUbuntu 12.04を実行しています。私は自分のコンピューターの1つを家に置き、SSHを使用して他の(「リモート」)コンピューターからそれに接続します。リモートコンピュータは、問題なくホームコンピュータに接続できます。リモートコンピューターの/ etc / ssh / ssh_configでSetAliveIntervalが60に設定されているため、コンピューターから少し離れても接続が停止しません。

リモートコンピューターのインターネット接続が中断されることがあります。インターネットの中断により、SSHトンネルが閉じます(もちろん)。インターネット接続を復元し、新しいSSHトンネルを使用して自宅のコンピューターに再接続する#ps axと、古いSSH接続プロセスがまだ実行されていることがわかります。これは問題です。私はホームコンピューターで暗号化されたホームディレクトリを使用しているため、その(現在は無効になっている)SSH接続が終了するまでファイルを再暗号化できません。

sshd_configをホームコンピューターに設定して、接続が切断されたことを自動的に検出して終了する方法はありますか?

回答:


5

screenまたはtmuxを試してください。サーバー側、または必要に応じて両側:

sudo apt-get install tmux

ログイン後、tmuxを起動します。

tmux

接続が切断された場合は、sshを介して再度ログインし、tmuxセッションに再接続します。セッション番号を見つけるには:

tmux ls

出力は次のようになります。

0:1ウィンドウ(2012年12月25日火曜日19:20:40に作成)

次のようにtmux番号のセッションに接続します。

tmux attach -t 0

それからあなたはあなたがそれを去ったところにすぐ戻っています。セッションを終了する必要はありません。彼らはあなたの次の訪問を待つだけです。または、単にセッションを終了したい場合は...

サーバー側で、ClientAliveIntervalおよびClientAliveCountMaxの/etc/ssh/sshd_config設定を参照してください。()man 5 ssh_config

ClientAliveInterval 300
ClientAliveCountMax 0

設定が変更されたら、SSHサーバーを再起動します。

sudo /etc/init.d/ssh restart

300は秒(5分)です。


これがまさに私が探していたものです!私はClientAliveIntervalから始めて、間違いなくtmuxも試します。ありがとうございました!
JL

1
ScreenとTmux以外の3番目のオプションは、ByobuWebsiteWikipediaです。ウェブサイトから:「もともとは、Ubuntuサーバーディストリビューション向けの、機能的でプレーンで実用的なGNU Screenにエレガントな拡張機能を提供するために設計されました。 GNU Screenウィンドウマネージャーと最新のTmux端末マルチプレクサーの両方で使用でき、ほとんどのLinux、BSD、Macディストリビューションで動作します。」
sierrasdetandil 2013

1

SSHの上に構築されたSSHの代替であるmoshをmoshをインストールする試すことができます。これは、ローミングと断続的な接続をサポートしているため、中断後にインターネット接続が再確立されると、Mosh(SSH)セッションは中断したところから続行されます。

両方のマシンにMoshをインストールする必要があります。

参照:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.