この記事はSFC-RG Advent Calendar 2017の10日目です。
誰も書かないから埋めました。
来年のNOCでヤングたちに見せるための備忘録。
概要
- Cisco IOSでsshによる公開鍵認証を 有効化する方法
- と、ハマりどころ
なんか知らないけど当たり前のようにパスワード認証で我慢してる人が多い気がする。出来ないもんだと思ったけど調べたら方法があったので共有。
ちなみにYamaha RTXは出来ない。悲しい。
検証環境
- Cisco 891FJ
- Cisco IOS 15.4
- 検証に用いる鍵はごく一般的なRSA
#
router# show version
Cisco IOS Software, C800 Software (C800-UNIVERSALK9-M), Version 15.3(3)M5,
ROM: System Bootstrap, Version 15.4(1r)T1, RELEASE SOFTWARE (fc1)
設定内容
クライアントPCとL3で導通するところまではがんばってやる
とりあえずパスワードでSSHログイン出来るようにする
[Cisco IOS] SSHによるリモートアクセスの設定
等を参考に行う。
時間に余裕が無い現代ピーポーのために必要なところを抜粋。
enable用パスワードを作成
cisco1(config)enable secret ぱすわーどは半角英数記号で書く
SSHの有効化とバージョンの明示的宣言
cisco1(config)# ip ssh version 2
vtyの設定
cisco1(config)#line vty 0 4
cisco1(config-line)#login local
cisco1(config-line)#transport input ssh
hostnameとドメインの設定
cisco1(config)#hostname cisco1
cisco1(config)#crypto key generate rsa
<中略>
How many bits in the modulus [512]: 2048
注:この鍵はルーター側の鍵。鍵長は2017年12月現在2048なら問題ない。
ユーザーの作成
cisco1(config)username ユーザー名 privilege 15 secret ぱすわーどは半角英数記号で書く
- privilege値を15とすることで、ログイン後すぐに管理者モード
#
になる。
公開鍵を登録する
(config)#
cisco1(config)#ip ssh pubkey-chain
cisco1(conf-ssh-pubkey)#username ユーザー
cisco1(conf-ssh-pubkey-user)#key-string
cisco1(conf-ssh-pubkey-data)#公開鍵鍵をペタペタペーストする
cisco1(conf-ssh-pubkey-data)#exit
鍵をペタペタする際に一気に全部貼ると怒られる。
5回くらいに分けて改行しながら入れる。
認証方式を決定する
デフォルトでは、以下の3つのプロトコルが有効。パスワードや対話式入力を無効化したい場合はno ip ssh server authenticate user hogehoge
する。
(config)#
ip ssh server authenticate user publickey
ip ssh server authenticate user keyboard
ip ssh server authenticate user password
ちなみに最近のIOS-XEでは別のコマンドでの設定が必要。(上記コマンドを打つと古いよって怒られる)
以下はASR1Kの16.9での場合。
(config)#
ip ssh server algorithm authentication password publickey
試す
#
cisco1# exit
~/
Macbook% ssh ユーザー名@ルーターのIPアドレス
cisco1#
出来た
失敗した場合は面倒くさいけどコンソールケーブルを繋いで設定を見直して下さい...
refs.
全て2017年12月参照
Cisco Router - Basic Security
[Cisco IOS] SSHによるリモートアクセスの設定