セッションが残ったssh接続を強制ログアウトするには(Solaris)







ssh接続のセッション



運用しているSolarisサーバーから、ssh接続のセッションが残っている旨の警告メールが届きました。

Solarisサーバーのcrontab設定でssh接続が残っていないかチェックするジョブが走らせてあり、ssh接続のセッションがしきい値を超えて残っていたためにチェックに引っかかりメールを飛ばしたようです。

セッションが残る原因

・ログアウトを忘れたままターミナルソフトを落とす

・サーバーログイン中に有線LANと無線LANを切り替えて接続元IPアドレスが変更となり、強制切断される



強制切断


残ったセッションを強制ログアウトさせるコマンドと手順を確認してみました。

「ssh セッション 残っている」等のワードで検索をかけると、同じような状態になることが多いのかすぐ見つかります。

  • w (who)でログインの状態を確認
  • ps ax | grep sshdでプロセスIDを確認
  • Kill ***で強制ログアウト(***はプロセスID)

ただ確認が出来た情報は基本的にlinux向けのもので、今回操作するSolarisとはpsのオプションが微妙に異なりました。



Solarisの場合、オプションは-efで確認することになります。


またgrepで確認する際のワードはsshとするよりも、ssh-agentで絞り込んだほうがゴミが引っかからず、わかりやすい表示になりました。



Solarisの場合


ps -ef | grep ssh-agent

上記のコマンドでプロセスIDが確認できるので、あとはKillコマンドで該当プロセスIDを落とすことで強制ログアウトをさせます。


参考 psのオプション

http://www.fujitsu.com/jp/products/computing/servers/unix/sparc/technical/command-reference/ps/01.html


aオプションについては、つけてもつけなくても表示される情報は変わらなかったので省いても問題ないかもしれません。




長時間の無操作でSSH接続をタイムアウトするように設定すればこんな作業は不要になりますが、不用意にサーバーの設定を変更するのは気が引け実行できずじまいです。

(まだSolarisをよく理解していません)






■関連記事

0 件のコメント :

コメントを投稿