GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでアクティブなSSH接続を見つける方法

Linuxシステム管理者であり、サーバーの管理を担当している場合は、サーバーでアクティブなssh接続の数と接続元を知る必要がある場合があります。 Linuxでは、サーバー上のアクティブなSSH接続を見つけるために使用できるコマンドとツールがいくつかあります。

このチュートリアルでは、Linuxでさまざまな方法でアクティブなSSH接続を見つける方法を示します。

前提条件
  • Linuxオペレーティングシステムを実行しているサーバー。
  • そのサーバーへのrootアクセス権があります。

whoコマンドでアクティブなSSH接続を検索

現在サーバーにログインしているユーザーのリストを表示するために使用されるLinuxコマンドラインユーティリティは誰ですか。

ターミナルを開き、whoコマンドを実行して、サーバー上のアクティブな接続を見つけます。

who

次の出力が得られるはずです:

root     pts/0        2020-05-01 02:37 (27.61.161.61)
root     pts/1        2020-05-01 02:39 (45.58.38.21)

ご覧のとおり、IP27.61.161.61と45.58.38.21からの2つのアクティブなSSH接続があります。

wコマンドでアクティブなSSH接続を検索

wは、サーバーに現在ログインしているユーザーに関する情報を表示する別のコマンドラインユーティリティです。このコマンドは、アクティブなセッションやそれらのセッションで実行されているプロセスなど、whoコマンドよりも多くの情報を提供します。

以下に示すように、wコマンドを実行できます。

w

次の出力が得られるはずです:

 02:40:07 up 1 day, 18:35,  2 users,  load average: 0.02, 0.02, 0.00
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
root     pts/0    27.61.161.61     02:37    1.00s  0.04s  0.01s ssh [email protected]
root     pts/1    45.58.38.21      02:39    1.00s  0.02s  0.00s w

ご覧のとおり、このコマンドには、アイドル時間の詳細、ソースIP、ログイン時間、負荷平均、およびプロセスも表示されます。

psコマンドでアクティブなSSH接続を検索

psコマンドは、サーバー内のアクティブなSSHセッションに関する情報も提供します。アクティブなSSH接続のPIDなどの追加情報が表示されます。

以下に示すようにpsコマンドを実行できます

ps auxwww | grep sshd: | grep -v grep

次の出力が表示されます。

root         609  0.0  0.1  12160  7268 ?        Ss   Apr29   0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root       35532  0.0  0.2  13864  8796 ?        Ss   02:37   0:00 sshd: [email protected]/0
root       35669  0.0  0.2  13860  8916 ?        Ss   02:38   0:00 sshd: [email protected]/1

netstatコマンドを使用してアクティブなSSH接続を検索

Netstatは、リモートホストからサーバーへのアクティブまたは確立されたSSH接続を表示するために使用できるコマンドラインツールです。

以下に示すように、netstatコマンドを実行できます。

netstat -tnpa | grep 'ESTABLISHED.*sshd'

次の出力が表示されます。

tcp        0     88 45.58.38.21:22          27.61.161.61:8363       ESTABLISHED 35532/sshd: [email protected] 
tcp        0      0 45.58.38.21:22          45.58.38.21:51166       ESTABLISHED 35669/sshd: [email protected] 
> 最後のコマンドでアクティブなSSH接続を検索

最後のコマンドは、ファイル/ var / log/wtmpが作成されてからログインおよびログアウトしたすべてのユーザーのリストを表示するために使用されます。最後のコマンドを使用すると、クライアントとサーバー間のアクティブなSSH接続情報も見つけることができます。

次のコマンドを実行して、サーバーでアクティブなSSH接続を見つけます。

last -a | grep -i still

次の出力が表示されます。

root     pts/1        Fri May  1 02:39   still logged in    45.58.38.21
root     pts/0        Fri May  1 02:37   still logged in    27.61.161.61
reboot   system boot  Wed Apr 29 08:04   still running      5.4.0-26-generic

ssコマンドでアクティブなSSH接続を検索

ssはnetstatと非常によく似ており、他のツールよりも多くの情報を表示するために使用されます。 grepでsshコマンドを使用して、サーバー内のアクティブなSSH接続を一覧表示できます。

以下に示すように、grepを使用してssコマンドを実行します。

ss | grep -i ssh

次の出力が表示されます。

tcp   ESTAB  0      0                      45.58.38.21:51166        45.58.38.21:ssh                                                                             
tcp   ESTAB  0      56                     45.58.38.21:ssh         27.61.161.61:8363                                                                            
tcp   ESTAB  0      0                      45.58.38.21:ssh          45.58.38.21:51166                                                                           

ご覧のとおり、クライアントIP45.58.38.21と27.61.161.61からの2つのアクティブな接続があります。

結論

上記のガイドでは、さまざまな方法でアクティブなSSH接続を見つける方法を学びました。サーバーにログインしているユーザーを簡単に監視できるようになりました。


Linux
  1. LinuxでFINDを使用する方法

  2. Linuxコマンドが何をするかを知る方法

  3. Linuxでfdコマンドを使用してファイルを検索する方法

  1. LinuxでSuコマンドを使用する方法

  2. Linux の find コマンドを使用してファイルを検索する方法

  3. Linux での find コマンドの例

  1. Linuxでファイルを見つける方法

  2. Linuxコマンド:テキストファイルのみを「検索」する方法は?

  3. Linux コマンドを使用してシェルのバージョンを確認するにはどうすればよいですか?