「一定期間操作のないbashを自動的にログアウトする方法」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「sshでサーバにログインしたときに、ログアウトをし忘れることがあるでしょう。bashでは、一定期間操作をしない場合、...」)
(相違点なし)

2015年2月26日 (木) 00:03時点における版

sshでサーバにログインしたときに、ログアウトをし忘れることがあるでしょう。bashでは、一定期間操作をしない場合、自動的にログアウトする機能があります。

読み方

bash
ばっしゅ

概要

sshのログインしっぱなしのセッションが残っていることは、好ましい状態ではありません。

設定

.profile 等に以下の設定をします。

例えば、10分間の入力がないときに、ログアウトさせたい場合には、60 * 10 の 600 を指定します。

export TMOUT=600

/etc/profile に設定して、上書きを禁止する場合には、このように書きます。

TMOUT=300
readonly TMOUT
export TMOUT

上記の設定だと ssh ユーザ以外もログアウトさせてしまいます。

sshユーザを限定的にログアウトする場合には、以下の通りです。

if [ -n "$SSH_CONNECTION" ]; then export TMOUT=300; fi

使い方

実際には、このような形になります。

$ ssh test@10.0.0.2
Last login: Wed Feb 25 23:38:57 2015 from 10.0.0.3
test@ubuntu:~$ timed out waiting for input: auto-logout
Connection to 10.0.0.2 closed.

自動ログアウトできないケース

プログラムを実行して、それが実行中の場合、一切入力がなくても、ログアウトしません。vimを起動していたら、bashは、終わりません。

$ ssh test@host1
$ vim

host1 で TMOUT が設定されいても、host2 で設定されていなければ、sshは、継続します。

host0$ ssh test@host1
host1$ ssh test@host2
host2$

sshdの設定でログアウトさせる

/etc/ssh/sshd_configの設定で、アイドルなセッションをログアウトさせることもできます。

ClientAliveInterval 3600
ClientAliveCountMax 0

sshdに設定を反映するには、reloadします。

sudo service sshd reload

関連項目