sshdが対応している認証機構を判別する方法

拙作でアレなんですが、Net::Scan::SSH::Server::SupportedAuth を使うといいかも。

同梱しているsample/scan-sshauth.plを使うと、

$ scan-sshauth.pl 10.6.25.0/24
HOST                   : SSH2  SSH1 (K=publickey, P=password)
===================================
10.6.25.0              : 2=--  1=--
10.6.25.1              : 2=K-  1=--
10.6.25.2              : 2=K-  1=K-
10.6.25.3              : 2=K-  1=K-
10.6.25.4              : 2=--  1=--
10.6.25.5              : 2=--  1=--
10.6.25.6              : 2=--  1=--
10.6.25.7              : 2=--  1=--
(snip)

的なことができます。

この例の場合、

  • 10.6.25.1はSSHv2の公開鍵認証だけを受け入れている
  • 10.6.25.2はSSHv2の公開鍵認証と、SSHv1の公開鍵認証を受け入れている

となります。

scan-sshauth.plをいじってYAMLを吐くようにしてPlaggerでNotify::*するとか、Assurer Assurer::Plugin::Test::SSH::SupportedAuthとかして、continuousにチェックするといいんではないかと思うす。

だれがいったか忘れましたが、「初期構成状態の継続的確認=監視」というのを思い出しました。