web-dev-qa-db-ja.com

SSHセッションを有効にしておく

私はssh -p8520 username@remote_Hostを使ってリモートサーバーにログインします。

問題

私が職場にいるとき、それは常につながっていて、きちんと働きます。残念ながら、自宅からリモートサーバーに接続してから10〜15分で端末がフリーズします。

コンソールにエラー/タイムアウトレポートはありませんが、カーソルはそれ以上移動できません。

入るとき w ログインユーザーをチェックするために、何人かのゾンビログインユーザーがそこにいます、そして私はそれらを手動で殺さなければなりません。

これはかなり面倒です。誰かが私を手伝ってくれる?

184
Haifeng Zhang

sshd(サーバー)は、しばらくクライアントから何も聞こえない場合は接続を閉じます。たまにはサーバーにライフオブサイン信号を送信するようにクライアントに指示することができます。

この設定は "〜/ .ssh/config"ファイルにあります。設定ファイルが存在しない場合は作成してください。 4分(240秒)ごとにリモートホストに信号を送信するには、 "〜/ .ssh/config"ファイルに次のように入力します。

Host remotehost:
    HostName remotehost.com
    ServerAliveInterval 240

これが私の "〜/ .ssh/config"にあるものです。

すべてのホストに対して有効にするには、次のコマンドを使用します。

Host *
ServerAliveInterval 240

また、実行してください:

chmod 600 ~/.ssh/config

設定ファイルは誰でも読めるようにしてはいけません。

340
rockymonkey555

私は1回限りの解決策を望んでいました:

ssh -o ServerAliveInterval=60 [email protected]

エイリアスに格納します。

alias sshprod='ssh -v -o ServerAliveInterval=60 [email protected]'

今このように接続することができます:

me@MyMachine:~$ sshprod
108
Ryan

気になる方には、@ edward-coast

サーバーのキープアライブ に設定する場合は、これを/etc/ssh/sshd_configに追加します。

ClientAliveInterval 60
ClientAliveCountMax 2

ClientAliveInterval:クライアントからデータを受信して​​いない場合に、sshd(8)が暗号化チャネルを介してメッセージを送信してから応答を要求するまでのタイムアウト間隔を秒単位で設定します。クライアント。

ClientAliveCountMax:sshd(8)がクライアントからメッセージを受け取らずに送信できるクライアントアライブメッセージ(下記参照)の数を設定します。クライアントアライブメッセージの送信中にこのしきい値に達すると、sshdはクライアントを切断してセッションを終了します。

36
Jeff Davenport

PuTTY settings

FYI PuTTYユーザーはここでオプションを設定できます

14
Ruben Benjamin

以下のグローバル設定を持つことで私たちのSSH接続を生き続けることができます

/etc/ssh/ssh_configファイルに次の行を追加します。

ServerAliveInterval 60
9
minhas23