RHEL8 で SSH クライアントの Ciphers、MAC、KexAlgoritms を変更する方法
Environment
- Red Hat Enterprise Linux 8
Issue
-
RHEL8 クライアントから他の Linux または Windows システムに接続する際に、MAC および KexAlgorithms に関して報告された問題を修正するにはどうすればよいですか?
-
RHEL8 から Windows システムに接続する際に、以下のようなエラーが発生します。
# ssh username@node.example.com
Unable to negotiate with x.x.x.x port 22: no matching MAC found. Their offer: hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96 -
MAC の問題を修正すると、DH グループの問題が表示されます。
# ssh username@node.example.com
Received disconnect from x.x.x.x port 22:2: Protocol error: no matching DH grp found
Disconnected from x.x.x.x port 22
Connection closed
Resolution
-
RHEL8 クライアントで MAC 'hmac-sha1' および 'diffie-hellman-group-exchange-sha1' の設定を変更します。
# vi /etc/ssh/ssh_config
MACs hmac-sha1,hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,umac-128@openssh.com,hmac-sha2-512
KexAlgorithms diffie-hellman-group-exchange-sha1,curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha1 -
この設定は、RHEL8 システムが別の SSHD サーバーに接続する SSH クライアントとして機能している場合にのみ適用します。
-
サーバーサイド (SSHD) の設定については、How to modify Ciphers, MACs, KexAlgoritms in SSHD for RHEL 8 を参照してください。
Root Cause
- Windows Server は、より強力な MAC と鍵交換アルゴリズムをサポートしているため、RHEL8 クライアントと Windows SSH/SFTP サーバー間のネゴシエーションが失敗します。
Diagnostic Steps
-
システム全体の暗号化ポリシーに従ってデフォルトでサポートされている、クライアントサイドの MAC と KexAlgorithms を確認します。
# update-crypto-policies --show
DEFAULT
# cat /etc/crypto-policies/back-ends/openssh.config
Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc
MACs hmac-sha2-256-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha1,umac-128@openssh.com,hmac-sha2-512
GSSAPIKexAlgorithms gss-curve25519-sha256-,gss-nistp256-sha256-,gss-group14-sha256-,gss-group16-sha512-,gss-gex-sha1-,gss-group14-sha1-
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 -
サーバーに必要な MAC と KexAlgorithms が含まれているかどうかを確認し、含まれている場合は MAC と KexAlgorithms の設定を確認します。
-
RHEL8 で SSH クライアントのカスタムパラメーターを設定するには、/etc/ssh/ssh_config ファイルでパラメーターを定義するか、/etc/ssh/ssh_config.d/ ディレクトリーに *.conf ファイルを作成します。
-
SSH クライアントの詳細ログをチェックして、どの MAC と KexAlgorithms がネゴシエートされているかを確認します。
# ssh -vvv username@server-ip
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments