「一定期間操作のない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