SSH
公開鍵
Cisco
IOS-XE
SFC-RGDay 10

Cisco IOS で公開鍵認証でのSSHを有効化する

この記事はSFC-RG Advent Calendar 2017の10日目です。
誰も書かないから埋めました。
来年のNOCでヤング:boy_tone1:たちに見せるための備忘録。


概要

  • Cisco IOSでsshによる公開鍵認証を 有効化する方法:v:
  • と、ハマりどころ:metal:

なんか知らないけど当たり前のようにパスワード認証で我慢してる人が多い気がする。出来ないもんだと思ったけど調べたら方法があったので共有。
ちなみに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で導通するところまではがんばってやる :checkered_flag:

:one: とりあえずパスワードでSSHログイン出来るようにする

[Cisco IOS] SSHによるリモートアクセスの設定

等を参考に行う。
時間に余裕が無い現代ピーポー:cop:のために必要なところを抜粋。

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とすることで、ログイン後すぐに管理者モード#になる。

:two: 公開鍵を登録する

(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回くらいに分けて改行しながら入れる。

:three: 認証方式を決定する

デフォルトでは、以下の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

:four: 試す

#
cisco1# exit
~/
Macbook% ssh ユーザー名@ルーターのIPアドレス

cisco1#

出来た :confetti_ball:
失敗した場合は面倒くさいけどコンソールケーブルを繋いで設定を見直して下さい...

refs.

全て2017年12月参照
Cisco Router - Basic Security
[Cisco IOS] SSHによるリモートアクセスの設定