回答:
接続を維持するために/etc/ssh/ssh_config
、それが言う行をチェックしてServerAliveInterval
、接続を維持するためにコンピューターがヌルパケットを送信する頻度(秒単位)を確認できます。そこに0があり、コンピューターが接続を維持しようとしていない(無効になっている)場合は、前述のパケットを送信する頻度(秒単位)を示します。120または240を入力してみてください。まだ接続が切断されている場合は、5に下げることができます。その数が発生しない場合は、おそらくルーターがメモリを解放するために接続をダンプしています。
ハングアップしたときにそれを殺すには、sshエスケープ文字を使用できます:
~.
つまり、チルダを押してからピリオドを押し、それが機能しない場合は、それを押す前にEnterを押すと、すぐに接続が切断されます。
ssh_config
は/etc/ssh/ssh_config
Mac OS Xです。自分で回答を編集しますが、このサイトには十分な担当者がいません。
あなたはできる:
すべての接続に対してシステム全体でシステムを構成します:/ etc / ssh / ssh_configを編集して 、次の行を追加します。
ServerAliveInterval 10
または、サーバーごとに〜/ .ssh / config
Host keepsdroppingme.com
ServerAliveInterval 10
これは基本的に、キープアライブパケットを10秒ごとに送信します...
また、素晴らしいmoshプロジェクトを使用することもできます。ネットワーク損失、スリープ状態になるマシンなどを適切に処理し、ネットワークが再び機能するようになったときに接続を正常に復元します。
もう1つのより古くからあるソリューションは、リモートマシンでtmuxを使用することです。その場合、まだパイプが破損している可能性がありますが、シェルを再接続すると、アプリケーションはそのままの状態で待機します。
ここでのさまざまな答えは、構成ファイルへの正確なパスに関して矛盾しています。ユニックスごとに異なるのでしょうか?システムのマニュアルページを読むことをお勧めします!
で男のssh(1) 、テキストを検索:configと。私のシステムでは、システム全体またはこのユーザーの構成ファイルのいずれかを選択できます(パスは奇妙に異なります)。
では男性はssh_config(5) 、テキストを検索:生きています。私のシステムでは、ServerAliveIntervalとServerAliveCountMaxの両方を設定する必要があるようです。
macOS 10.12 Sierraで機能したのは、〜/ .ssh / configに次の2行を追加することです。
ServerAliveInterval 20
ServerAliveCountMax 180
これで、Ubuntu 16.04サーバーへのsshを、切断せずに20 * 180秒= 1時間実行できます。私の一日を作りました!
MacPortsまたはHomebrewからautosshをインストールします。brew install autossh
ターミナルを開いて実行する autossh -M 20000 -f [SSH ARGUMENTS GO HERE]
WiFiを切断するか、Macをスリープ状態にします。
wifiに再接続すると、sshセッションが自動的に再接続されます。
Jon Staceyは、ログイン時にsshセッションを自動的にアクティブにすることに関するブログ投稿を書きました。
MacPortsまたはHomebrewからautosshをインストールします。brew install autossh
bashスクリプトを使用してAutomatorワークフローを作成します。
~.
、すばらしいヒントです!しかし、実際には何をしますか?