
コンピュータがスリープ状態から復帰した後も、SSH ログイン セッションの接続を維持したいと考えています。私の理解では、TCP は断続的なネットワークの問題に耐えることができるので、数時間または数日間耐えられるように設定を変更できますか。そうでない場合、SSH に似たものでそれができるものはありますか。
ネットワークが再び利用可能になったときに自動的に再接続するように SSH を設定できることは理解しています。しかし、これは理想的ではありません。なぜなら、ラップトップがスリープ状態になる前とまったく同じ場所でログイン セッションを実行したいからです (シェル コマンド ラインで何かを入力している途中であっても)。
他にもあることは理解している回避策しかし、そもそもシェル セッションが失われないようにする方法があることを期待していました。
答え1
答え2
screen
または、tmux
間違いなく正しい方法です。ssh
接続は目的を達成するための手段に過ぎなくなり、アイドル時に接続が切断される頻度は (合理的な範囲内で) 問題ではなくなります。
リモート サーバーにログインしたときに開始することを覚えておく必要がある場合は、対話型セッションを既存のセッションに自動的に参加させたり、すでに実行されているセッションがない場合は新しいセッションを開始したりすることはそれほどscreen
難しくありません。screen
答え3
岩(Reliable sOCKetS)は、クライアントTCP接続を行うプログラムのラッパーであり、TCP接続が失敗したときにそれを検出し、クライアントが別のネットワークに移動した場合でも自動的に再接続します。これは論文で説明されています。信頼性の高いネットワーク接続そしてダウンロード可能メンテナンスされていませんが、かなり安定したインターフェースを使用しているため、現在でも動作するはずです。ライブラリのプリロード(LD_PRELOAD
)を使用して標準ライブラリ関数をシャドウするため、動的にリンクされた実行ファイルでのみ動作します。次のように実行するだけです。
rocks ssh …
Rocksはクライアントの移動を扱いますが、サーバーの移動は扱いません。サーバーが移動した場合は、靴下プロキシ。
インタラクティブなセッションの場合、良い代替案はモッシュ信頼性の低い接続向けに設計されており、クライアントのモビリティをサポートします。接続が信頼できない場合、Mosh はデータを失うため、対話型セッションでのみ使用できます。
ほぼ信頼できるが、時々接続が不安定な場合は、Moshの代替としてオート自動的に再接続し、画面またはtmuxサーバー上で実行されています。クライアントが切断されても screen/tmux セッションはサーバー上に残り、接続が切断されると autossh が自動的に再接続します。