web-dev-qa-db-ja.com

sshd構成を確認する

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

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

AllowUsers user1 user2 
PasswordAuthentication no
PermitRootLogin no

ファイルの内容を手動で確認する唯一の方法ですsshd_config、またはsshdを調べて確認できますか?

21
JuanPablo

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

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

このオプションは、2008年からPortable OpenSSHに存在しています。 commit e7140f2 。これは、2008年7月に作成された5.1p1でリリースされました。 5.1のリリースノート なので、今日サポートされているほとんどすべてのOpenSSHサーバーインストールに存在します。

29
Josip Rodin

これですべてのサーバー定義がダンプされるわけではありませんが、詳細なデバッグフラグを使用してサーバーへの接続を試すことができます: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 [email protected]
debug1: Entering interactive session.

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

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

4
Claudio

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

ランタイム構成をクエリするには、拡張テストモードsshd -Tを使用できます。これにより、設定のクライアントマッチングをテストすることもできます。

3
gparent

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

2
johnshen64

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

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

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

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

2