SSH接続時の暗号化方式がCPU負荷に与える影響を確認するには、以下の手順で各暗号化方式のパフォーマンスを測定できます。
OpenSSHには、暗号化方式のパフォーマンスを測定するためのベンチマーク機能があります。以下のコマンドで、各暗号化方式のスループットを確認できます。
ssh -Q cipher | xargs -I {} sh -c 'echo {}; ssh -o Ciphers={} -F /dev/null user@hostname "dd if=/dev/zero bs=1M count=1000" | pv -br >/dev/null'
このコマンドは、サポートされている各暗号化方式について、dd
コマンドを使用してデータを転送し、そのスループットをpv
コマンドで表示します。pv
がインストールされていない場合は、sudo apt-get install pv
(Debian系)やsudo yum install pv
(Red Hat系)でインストールしてください。
実行例:
3des-cbc
Unable to negotiate with 33.33.33.33 port 22: no matching cipher found. Their offer: aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc
0.00 B [0.00 B/s]
aes128-cbc
1000+0 records ins]
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 3.51765 s, 298 MB/s
1000MiB [ 257MiB/s]
aes192-cbc
Unable to negotiate with 33.33.33.33 port 22: no matching cipher found. Their offer: aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc
0.00 B [0.00 B/s]
aes256-cbc
1000+0 records ins]
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 3.82126 s, 274 MB/s
1000MiB [ 245MiB/s]
aes128-ctr
1000+0 records ins]
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 2.79658 s, 375 MB/s
1000MiB [ 327MiB/s]
aes192-ctr
Unable to negotiate with port 22: no matching cipher found. Their offer: aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc
0.00 B [0.00 B/s]
aes256-ctr
1000+0 records ins]
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 2.79155 s, 376 MB/s
1000MiB [ 329MiB/s]
aes128-gcm@openssh.com
1000+0 records ins]
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 2.69718 s, 389 MB/s
1000MiB [ 343MiB/s]
aes256-gcm@openssh.com
1000+0 records ins]
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 2.72741 s, 384 MB/s
1000MiB [ 338MiB/s]
chacha20-poly1305@openssh.com
1000+0 records ins]
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 3.17321 s, 330 MB/s
1000MiB [ 294MiB/s]
注意点:
-
測定時は、ネットワーク帯域幅やディスクI/Oの影響を最小限に抑えるため、可能であれば同一のネットワーク環境と条件でテストを行ってください
-
暗号化方式の選択は、セキュリティ要件とパフォーマンスのバランスを考慮する必要があります
-
一般的に、
aes128-ctr
やchacha20-poly1305@openssh.com
は高速であり、CPU負荷が低いとされています。ただし、環境や要件に応じて適切な方式を選択してください
これらの手法を用いて、各暗号化方式のCPU負荷やパフォーマンスを評価し、最適な設定を選定することが可能です