私はssh -p8520 username@remote_Host
を使ってリモートサーバーにログインします。
問題:
私が職場にいるとき、それは常につながっていて、きちんと働きます。残念ながら、自宅からリモートサーバーに接続してから10〜15分で端末がフリーズします。
コンソールにエラー/タイムアウトレポートはありませんが、カーソルはそれ以上移動できません。
入るとき w ログインユーザーをチェックするために、何人かのゾンビログインユーザーがそこにいます、そして私はそれらを手動で殺さなければなりません。
これはかなり面倒です。誰かが私を手伝ってくれる?
sshd(サーバー)は、しばらくクライアントから何も聞こえない場合は接続を閉じます。たまにはサーバーにライフオブサイン信号を送信するようにクライアントに指示することができます。
この設定は "〜/ .ssh/config"ファイルにあります。設定ファイルが存在しない場合は作成してください。 4分(240秒)ごとにリモートホストに信号を送信するには、 "〜/ .ssh/config"ファイルに次のように入力します。
Host remotehost:
HostName remotehost.com
ServerAliveInterval 240
これが私の "〜/ .ssh/config"にあるものです。
すべてのホストに対して有効にするには、次のコマンドを使用します。
Host *
ServerAliveInterval 240
また、実行してください:
chmod 600 ~/.ssh/config
設定ファイルは誰でも読めるようにしてはいけません。
私は1回限りの解決策を望んでいました:
ssh -o ServerAliveInterval=60 [email protected]
エイリアスに格納します。
alias sshprod='ssh -v -o ServerAliveInterval=60 [email protected]'
今このように接続することができます:
me@MyMachine:~$ sshprod
気になる方には、@ edward-coast
サーバーのキープアライブ を に設定する場合は、これを/etc/ssh/sshd_config
に追加します。
ClientAliveInterval 60
ClientAliveCountMax 2
ClientAliveInterval:クライアントからデータを受信していない場合に、sshd(8)が暗号化チャネルを介してメッセージを送信してから応答を要求するまでのタイムアウト間隔を秒単位で設定します。クライアント。
ClientAliveCountMax:sshd(8)がクライアントからメッセージを受け取らずに送信できるクライアントアライブメッセージ(下記参照)の数を設定します。クライアントアライブメッセージの送信中にこのしきい値に達すると、sshdはクライアントを切断してセッションを終了します。
以下のグローバル設定を持つことで私たちのSSH接続を生き続けることができます
/etc/ssh/ssh_config
ファイルに次の行を追加します。
ServerAliveInterval 60