CiscoルータのSSHアルゴリズムを変更する

先日CiscoルータへSSHしようとしてできなかったことがあった。
エラーが出ていたので見てみると、クライアント側で使用できるアルゴリズムが、
サーバ側で有効ではないといった内容だった。

ルータは新しめなのでそんなことないだろうと思っていたが、
どうやらクライアント側のOSが古すぎたのか
新しいアルゴリズムに対応していなかっただけだった。
そんなことってあるのね・・・。

そんなこんなでCiscoルータ側でアルゴリズムを追加して接続できるようになったのだが、
基本SSHはデフォルトの設定のまま使うことが多かったので初めての対応だった。
イレギュラーではあるのかもしれないが、今後のためにメモしておく。


現在のアルゴリズムを確認する


SSHの現在の有効になっているアルゴリズムは以下コマンドで確認できる。

RT01#show ip ssh
SSH Enabled - version 2.0
Authentication methods:publickey,keyboard-interactive,password
Authentication Publickey Algorithms:x509v3-ssh-rsa,ssh-rsa
Hostkey Algorithms:x509v3-ssh-rsa,ssh-rsa
Encryption Algorithms:aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
MAC Algorithms:hmac-sha1,hmac-sha1-96
Authentication timeout: 120 secs; Authentication retries: 3
Minimum expected Diffie Hellman key size : 1024 bits
IOS Keys in SECSH format(ssh-rsa, base64 encoded): RT01.test.com
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcg0bVD2XsHByOitA8rF+Vr0SfavhcbhM4FEkd8Umx
YIwQuLzsEW+NMuczHTJOlFEOGxM+3Fm8iZUjKhD+vs3SVWO6J+lmDjiqOPyqiEJEWp+/ABOCez35Rglj
xGve/mT/40OsRpGfoCDOoiGDDz0cOrntHlngjzKMqFU2AufUDBS2/9tMaymiJrwEkodjnXMB++XGNRkK
r/BAUE+JFoBom7lGCVpZC7iZJ3506Ac56PNM9f1u5VTZSmAInWYoeT2yvWyrelJ2VLowJdPaiMKJiBEf
QlfFIEZYZxxZDm1L6jBOBszPwnaM9KwvRQzthV4IoeYKVyt84HxP20m/cTPZ


例えば有効化されている暗号化アルゴリズムは以下となる。

Encryption Algorithms:aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc


最近の新しいバージョンのルータであれば、
"aes128-ctr,aes192-ctr,aes256-ctr"の3つのみ有効になっていることが多い。
ここが落とし穴で、クライアントのOSが古いと"cbc"までしか対応していないこともある。
その場合は別途有効化してあげる必要がある。

有効化されているMACアルゴリズムであれば以下となる。

MAC Algorithms:hmac-sha1,hmac-sha1-96


ちなみに確認しているルータのバージョンは以下になる。
少々古いので新しめのルータとは出力結果や使用できるアルゴリズムは異なるかもしれない。

RT01#show version
Cisco IOS XE Software, Version 03.14.01.S



SSHサーバアルゴリズムを変更する


変更する場合は、追加されるのではなく上書きされるので、
有効にしたいものすべて記述する必要がある。

■暗号化アルゴリズム変更例
ip ssh server algorithm encryption aes128-ctr aes192-ctr aes256-ctr


■MACアルゴリズム変更例
ip ssh server algorithm mac hmac-sha1


■Host Keyアルゴリズム変更例
ip ssh server algorithm hostkey ssh-rsa


■DHグループ変更例1
ip ssh dh min size 2048


変更例1は少々古いか?
グループ番号というよりは最小Keyサイズを決めている感じではある。

■DHグループ変更例2
ip ssh server algorithm kex diffie-hellman-group14-sha1


新しめのルータであれば変更例2のコマンドになっているかと思う。

適当に変更してみた結果をshowコマンドで確認。

RT01#show ip ssh
SSH Enabled - version 2.0
Authentication methods:publickey,keyboard-interactive,password
Authentication Publickey Algorithms:x509v3-ssh-rsa,ssh-rsa
Hostkey Algorithms:ssh-rsa
Encryption Algorithms:aes128-ctr,aes192-ctr,aes256-ctr
MAC Algorithms:hmac-sha1
Authentication timeout: 120 secs; Authentication retries: 3
Minimum expected Diffie Hellman key size : 2048 bits
IOS Keys in SECSH format(ssh-rsa, base64 encoded): RT01.test.com
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDcg0bVD2XsHByOitA8rF+Vr0SfavhcbhM4FEkd8Umx
YIwQuLzsEW+NMuczHTJOlFEOGxM+3Fm8iZUjKhD+vs3SVWO6J+lmDjiqOPyqiEJEWp+/ABOCez35Rglj
xGve/mT/40OsRpGfoCDOoiGDDz0cOrntHlngjzKMqFU2AufUDBS2/9tMaymiJrwEkodjnXMB++XGNRkK
r/BAUE+JFoBom7lGCVpZC7iZJ3506Ac56PNM9f1u5VTZSmAInWYoeT2yvWyrelJ2VLowJdPaiMKJiBEf
QlfFIEZYZxxZDm1L6jBOBszPwnaM9KwvRQzthV4IoeYKVyt84HxP20m/cTPZ


問題なく変更されている。


SSHクライアントアルゴリズムを変更する


基本的にサーバ用コマンドの"server"を"client"に変更すれば良い。

■暗号化アルゴリズム変更例
ip ssh client algorithm encryption aes128-ctr aes192-ctr aes256-ctr


その他アルゴリズムも同様なので割愛する。


まぁ極たまにしか使わないと思うが、知っていると便利かも!?


以上。



実用SSH 第2版―セキュアシェル徹底活用ガイド


人気記事