前提
loginコマンドとは、line vtyやline con0に設定することでコンソール、TELNET、SSHなどする際に
ローカル認証を自身で行います。
主にログイン時、line vtyやline con0に設定したパスワードを要求するようになります。
下記の様に設定することでユーザー名も要求するようになります。
Switch(config-line)# login local
loginコマンドが受け付けてもらえない
cisco C9200L-24T-4G にてコンソールログイン時にパスワードを要求してくるよう認証するために、以下のようなloginコマンドを設定しようとしました。
C9200L#sh run | s line con
line con 0
exec-timeout 30 0
password 7 xxxxxxxxxxxxxx
logging synchronous exec prompt timestamp stopbits 1
C9200L#conf t
C9200L(config) #line con 0
C9200L(config-line) #login
% Incomplete command.
C9200L(config-line) #
通常入れているはずのloginコマンドの設定が% Incomplete command.で拒否されてしまいました。
他の設定も比較しつつ、原因を探りました。
原因と対処法
外部認証する際に設定しているAAA(Authentication, Authorization, Accounting)を有効にしているのが原因でした。
そもそもloginコマンドはローカル認証専用の設定になります。
認証を外部に任せている場合、ローカル(自分自身)で認証しないためAAAを有効にしているとloginコマンドは受け付けてもらえません。
一度AAAの設定を削除して再度実行しました。
C9200L(config) #no aaa new-model
Changing configuration back to no aaa new-model is not supported.
Continue? [confirm]
C9200L(config) #line con 0
C9200L(config-line) #login
C9200L(config-line) #end
C9200L#sh run | s line
line con 0
exec-timeout 30 0
password 7 xxxxxxxxxxxxxxx
logging synchronous
login
exec prompt timestamp stopbits 1
loginコマンドを受け付けてもらえました。
まとめ
理屈としては、
AAA有効時(=外部認証有効にしている際)はそこからパスワードを要求するからloginコマンドの設定は不要で、
AAA無効時(=外部認証無効にしている際)はローカルパスワードを使用するので、
この login コマンドを入れてローカル認証を有効化してあげないといけないということです。

この機器ではtacacsサーバを使った外部認証をする予定なので、loginコマンドは不要ということが分かります。

コメント