sshd構成を検証する


19

の構成を確認するにはどうすればよいsshdですか?

たとえば、これらの設定が設定および適用されていることを確認したい:

AllowUsers user1 user2 
PasswordAuthentication no
PermitRootLogin no

ファイルの内容を手動で確認する唯一の方法ですか、それとも確認するためsshd_configにプローブできますsshdか?


2
検証とはどういう意味ですか?行った設定変更が有効であることを確認する方法を尋ねていますか?有効な設定をチェックするlintのようなツールがあるかどうか尋ねていますか?
ゾレダチェ

2
私は質問が不明確だとは思わない:実際には設定オプションの値が何かをチェックする方法がない。#UseLogin nossd_configファイルに表示される場合、UseLoginがyesまたはUseLoginがnoであることを意味しますか?そのため、マニュアルを参照して、コンパイル中に変更された可能性のあるデフォルト値を見つける必要があります。これまでのところ役に立たない質問から
...-Xorax

回答:


27

これを行うコマンドラインオプション-Tで呼び出される拡張テストモードがあります。例えば:

% sudo sshd -T | egrep -i 'allowusers|passwordauth|permitroot'
permitrootlogin yes
passwordauthentication yes

このオプションは、2008年以来、ポータブルOpenSSHに存在しています。 e7140f2をコミットします。これは、2008年7月に作成された5.1p1でリリースされました。5.1のリリースノートなので、現在サポートされているほとんどすべてのOpenSSHサーバーインストールに存在します。


3
ただし、これにはデフォルト設定+ /etc/ssh/sshd_configファイルの設定が表示されることに注意してください。ファイルの設定は、システム上の同等または同等のsshdものでリロードされるまで、実際にはまだアクティブになっていない可能性があり/etc/init.d/ssh reloadます。
mivk

2
@mivkの良い点ですが、これは当然のことです。なぜなら、これらの種類のコマンドは、変更を行った直後に、実際に適用する前に使用するのが一般的だからです。たとえばapache2ctl -S、同じように動作します。
ジョシップロダン

4

これによりすべてのサーバー定義がダンプされるわけではありませんが、詳細なデバッグフラグを使用してサーバーへの接続を試すことができますssh -v user@server。これにより、sshd構成で有効になっているオプションを反映する多くの情報が得られます。

たとえば、-vスイッチを使用してこの接続の出力を確認します(意図的に偽装されたキー署名、ドメイン、およびIPアドレス):

OpenSSH_6.0p1, OpenSSL 0.9.8w 23 Apr 2012
debug1: Reading configuration data /home/claudio/.ssh/config
debug1: /home/claudio/.ssh/config line 13: Applying options for serv01
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to somedomain.com [185.113.29.221] port 22.
debug1: Connection established.
debug1: identity file /home/claudio/.ssh/id_dsa type 2
debug1: identity file /home/claudio/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9
debug1: match: OpenSSH_5.9 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 3a:0d:b8:18:ca:67:4c:54:0f:c8:b2:1e:48:53:69:28
debug1: Host '[somedomain.com]:22' is known and matches the ECDSA host key.
debug1: Found key in /home/claudio/.ssh/known_hosts:7
Warning: Permanently added the ECDSA host key for IP address '[185.113.29.221]:22' to the list of known hosts.
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /home/claudio/.ssh/id_dsa
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: Authentication succeeded (publickey).
Authenticated to somedomain.com ([185.113.29.221]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.

それから、許可された認証方法は次のとおりです:publickey、password、keyboard-interactive。また、このサーバーではローミングが許可されておらず、ユーザーclaudioが公開キーを使用して接続できることもわかります。

より多くの「v」文字を指定して、情報出力のレベルを上げることができますが、その後、おそらく必要以上に低レベルの情報が得られる可能性があります。


3

sshdの構成は通常、次のファイルにあります/etc/ssh/sshd_config

ランタイム構成を照会するために、拡張テストモードsshd -Tを使用して、クライアントの設定の一致をテストすることもできます。


1
これは彼が尋ねている質問に答えるとは思わないが、彼の質問は完全に明確ではない。
ゾレダチェ

1
構成を確認する方法を尋ねているようです。私の知る限り、実行時にsshdの構成を照会する方法はありません。したがって、構成は、私が言及したファイルでのみ見つけることができます。
-gparent

あなたが言ったように、質問は意味をなさないので、ファイルがどこにあるのか、またはその正確な名前をOPが知らなかったのではないかと考えました。
-gparent

4年後に正当な理由なく絶対に私に投票しない場合は、常識を使用して質問履歴を確認し、編集を提案してください。
-gparent

@gparent元の質問はやや曖昧で、設定ファイルのパスにタイプミスがあったので、代わりに質問でその文字列を修正するために編集機能を使用する必要がありました。いずれにせよ、確認の質問に対する答えは上記に示されています
ジョシップロダン

2

opensshサーバーを参照している場合、実行中のsshdインスタンスの構成を照会する既知の方法はありません。やりたいことに応じて、サーバーを再起動する前に-tフラグを使用して構成ファイルをテストし、サーバーが再起動されないように有効であることを確認できます。サーバーへの帯域外アクセスがない場合。


2

/ etc / ssh / sshd_configファイルを見る際の問題は、他の回答で示唆されているように、必ずしも構成全体が含まれているとは限らないことです。このファイルには、デフォルトを上書きするために設定する設定変数の値が含まれています。また、出荷時には、sshdに組み込まれているデフォルトがコメントとして含まれています。

出荷されたバージョンの代わりにカスタム構成ファイルがインストールされている場合、sshdにコンパイルされているデフォルトが見えなくなります。カスタムビルドの場合、デフォルトは表示されるsshd_configのコメントと一致しない場合があります。

さらに、-fオプションを使用して代替構成ファイルでsshdを実行することは完全に可能であるため、/ etc / ssh / sshd_configに保存されているものは現在の設定を反映しない可能性があります。

これにより、質問は非常に有効になり、私が知る限り、確実に答えることはできません。


すべてのことは本当ですが、それはでコンパイルデフォルトのコンフィギュレーションがあるパッケージからインストールsshdを実行するサーバの99%には適用されません。
アンドリュー・シュルマン

あなたの答えは役に立ちますが、質問は確かに確実に答えられる可能性があります。これはかなり以前からありました。以下の私の答えをご覧ください。
ジョシップロダン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.