このシナリオを想像してください。 SSHキーベースの認証を設定しました Linuxサーバーで。次に、パスワードベースの認証を完全に無効にし、すべてのユーザーにキーベースの認証のみを許可することにしました。パスワード認証を無効にする前に、SSH経由でサーバーにアクセスするためにまだパスワードを使用しているユーザーを確認する必要があります。どのようにそれを行うつもりですか?まあ、それは可能です!この簡単なガイドでは、ユーザーがLinuxでパスワードベースまたはキーベースのSSH認証を使用しているかどうかを確認する方法について説明します。
ユーザーがパスワードベースまたはキーベースのSSH認証を使用しているかどうかを確認します
パスワードまたはsshキーを使用して、SSH経由でユーザーがLinuxサーバーにログインしているかどうかを識別できます。 100%信頼性が高く、保証された方法ではありませんが、それでも優れたアプローチです。
まず、 ~/.ssh/authorized_keys
かどうかを確認します ファイルが存在します。これは、SSHキーベースの認証方法では、SSH経由でアクセスするシステムにSSH公開キーをアップロードする必要があるためです。公開鍵は通常、 ~/.ssh/authorized_keys
というファイルに保存されます。 リモートシステムで。このファイルが存在する場合、ユーザーがキーベースの認証を使用している可能性があります。
次に、認証ログファイルをチェックして、ユーザーがリモートシステムへのアクセスに現在使用している認証方法を確認します。 authメソッドは"/var/log/secure"
にログインしています RPMベースのシステム(CentOSなど)のファイル、"/var/log/auth.log"
DEBベースのシステム(Ubuntuなど)のファイル。
grepコマンドを使用して、認証ログファイルでパスワードエントリを探すだけです。 または他の好きな方法。
$ grep 'password' /var/log/secure
または、
$ grep 'password' /var/log/auth.log
出力例:
[...] May 8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2 May 8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2
"Accepted password for ..."の行に気づきましたか 上記の出力で?これは、ユーザーがパスワードを使用してリモートシステムにアクセスしていることを意味します。上記の出力によると、ユーザーは "senthil" および"sk" sshパスワード認証を使用してリモートシステムにアクセスしています。
ユーザーがキーベースの認証を使用している場合、おそらく次のような出力が表示されます。
May 8 10:40:56 ostechnix sshd[3405]: Accepted publickey for sk from 192.168.225.37 port 41992 ssh2
もちろん、ログファイルが非常に長く、エントリ数が多い場合は少し難しいです。その場合は、 "tail"
を使用してください 特定の数のログファイルを表示するコマンド。
たとえば、次のコマンドは、ログファイルの最後の10エントリのみを表示します。
$ grep 'password' /var/log/auth.log | tail -n 10
出力例:
May 8 10:21:49 ostechnix sshd[2135]: Accepted password for senthil from 192.168.225.37 port 41920 ssh2 May 8 10:21:57 ostechnix sshd[2222]: Accepted password for sk from 192.168.225.37 port 41922 ssh2 May 8 10:24:57 ostechnix sshd[2360]: Accepted password for senthil from 192.168.225.37 port 41924 ssh2 May 8 10:25:04 ostechnix sshd[2448]: Accepted password for sk from 192.168.225.37 port 41926 ssh2 May 8 10:29:40 ostechnix sshd[2663]: Accepted password for senthil from 192.168.225.37 port 41938 ssh2 May 8 10:29:55 ostechnix sshd[2765]: Accepted password for sk from 192.168.225.37 port 41940 ssh2 May 8 10:39:34 ostechnix sshd[3064]: Accepted password for senthil from 192.168.225.37 port 41986 ssh2 May 8 10:39:55 ostechnix sshd[3184]: Accepted password for sk from 192.168.225.37 port 41988 ssh2 May 8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2 May 8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2
-f
を使用することもできます テスト時にログを追跡するフラグを立てます。
$ grep 'password' /var/log/auth.log | tail -f -n 10
ログファイル全体をチェックして「パスワード」を見つけたい場合 ページごとにエントリを作成するには、"less"
を使用します コマンド:
$ grep 'password' /var/log/auth.log | less
sshd
に関連するすべてのログを検索するには (成功または失敗した試行)、上記のすべてのコマンドで「password」を「sshd」に置き換えます。
$ grep 'sshd' /var/log/auth.log | tail -n 10
その他のSSH関連ガイド:
- Linuxで特定のユーザーまたはグループへのSSHアクセスを許可または拒否する
- ユーザー/グループ/システムごとのSSHログイン数を制限する
- TCPラッパーを使用してLinuxサーバーへのアクセスを制限する
- SSH経由でリモートLinuxシステムでコマンドを実行
- LinuxでSSHエイリアスを作成する方法
- Linuxで特定のディレクトリにSSHで接続する方法
- SSLH –HTTPSとSSHで同じポートを共有する
- ScanSSH –高速SSHサーバーとオープンプロキシスキャナー
- Rsyncを使用してSSH経由で部分的に転送されたファイルを再開する方法
- 複数のリモートシステムで単一のコマンドを一度に実行する方法
- DSH –一度に複数のホストでLinuxコマンドを実行する
- LinuxでSSHセッションが切断されないようにする方法
- FreeBSDでSSHを有効にする方法
これがお役に立てば幸いです。