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]>
最後のコマンドは、ファイル/ 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接続を見つける方法を学びました。サーバーにログインしているユーザーを簡単に監視できるようになりました。