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

提供: セキュリティ
移動: 案内検索
(設定)
行24: 行24:
 
上記の設定だと ssh ユーザ以外もログアウトさせてしまいます。
 
上記の設定だと ssh ユーザ以外もログアウトさせてしまいます。
  
[[ssh]]ユーザを限定的にログアウトする場合には、以下の通りです。
+
[[ssh]]でログインしているユーザだけをログアウトする場合には、sshのコネクションがあるかどうかを判断して、TMOUTを設定します。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
if [ -n "$SSH_CONNECTION" ]; then export TMOUT=300; fi
 
if [ -n "$SSH_CONNECTION" ]; then export TMOUT=300; fi
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
== 使い方 ==
 
== 使い方 ==
 
実際には、このような形になります。
 
実際には、このような形になります。

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

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

読み方

bash
ばっしゅ

概要

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

設定

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

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

export TMOUT=600

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

TMOUT=300
readonly TMOUT
export TMOUT

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

sshでログインしているユーザだけをログアウトする場合には、sshのコネクションがあるかどうかを判断して、TMOUTを設定します。

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$

その他のシェル

csh/tcsh

.cshrc に autologout を設定します。

sh

.profile に TIMEOUT を設定します。

ksh

.profile に TMOUT を設定します。

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

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

ClientAliveInterval 3600
ClientAliveCountMax 0

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

sudo service sshd reload

関連項目