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

LinuxでユーザーがパスワードベースまたはキーベースのSSH認証を使用しているかどうかを確認する方法

このシナリオを想像してください。 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を有効にする方法

これがお役に立てば幸いです。


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

  2. Ansibleを使用してLinuxユーザーを作成する方法

  3. LinuxサーバーでSSHを使用してPlesk管理者パスワードをリセットするにはどうすればよいですか?

  1. Linuxでユーザーパスワードを変更、削除、または無効にする方法

  2. LinuxですべてのSudoユーザーを見つける方法

  3. LinuxでSSHキーベースの認証を構成する方法

  1. Linuxでパスワードを変更する方法–ステップバイステップガイド

  2. LinuxVPSでSSHパスワード認証を無効にする方法

  3. Linuxでユーザーのメモリ使用量を見つける方法