Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

1. はじめに

今日はSSHの設定方法を勉強します。
まだまだTelnet接続を使用している環境も多いと思いますが、世の中的にはManagementアクセスもよりセキュアにする方向に向かっているので、Telnetは割愛しました。

2. 前提

Catalystに192.168.1.1を設定し、SSHによるリモートアクセスを確認します。

3. 設定

IPの設定とインターフェースの開放

Switch(config)#interface Loopback 0
Switch(config-if)#ip address 192.168.1.1 255.255.255.0

ログインUsernameとPasswordを作成し、vtyに設定。接続方法をSSHに限定。

Switch(config)#username Jinnai73 secret cisco
Switch(config)#line vty 0 4
Switch(config-line)#login local
Switch(config-line)#transport input ssh

ホスト名、ドメイン名の設定、RSA鍵の作成

Switch(config)#hostname tc0001
tc0001(config)#ip domain-name jinnai73.com
tc0001(config)#crypto key generate rsa
The name for the keys will be: tc0001.jinnai73.com
Choose the size of the key modulus in the range of 360 to 2048 for your
  General Purpose Keys. Choosing a key modulus greater than 512 may take
  a few minutes.

How many bits in the modulus [512]: 2048
% Generating 2048 bit RSA keys ...[OK]

SSHv2に限定

tc0001(config)#ip ssh version 2

特権パスワードの設定

tc0001(config)#enable secret cisco

4. 解説

UsernameとPasswordはコンソール接続、リモート接続で共通のものをusername secretコマンドで設定します。passwordコマンドでも設定できますが、セキュリティ上username secretを使用することが推奨されます。この辺りは前回書きました。
http://qiita.com/jinnai73/items/a240bf2bc1325b46edfe
パスワードを作成したらlogin localコマンドでlineに適用します。Telnet接続を禁止するため、transport inputコマンドでsshでのログインのみ許可します。

Switch(config)#username Jinnai73 secret cisco
Switch(config)#line vty 0 4
Switch(config-line)#login local
Switch(config-line)#transport input ssh

続いてSSH接続に必要なRSA鍵を作成します。RSA鍵を確認するコマンドはshow crypto key mypubkey rsaです。

Switch#show crypto key mypubkey rsa

Switch#

何も入っていませんね。鍵を生成するコマンドはcrypto key generate rsaですが、生成する前提としてスイッチのFQDN、つまりホストとドメイン名が決まっている必要があります。デフォルトではドメイン名が設定されていないため、以下のようなエラーが出ます。

Switch(config)#crypto key generate rsa
% Please define a domain-name first.

ドメイン名の設定はip domain-nameコマンド、確認はshow hostsで行えます。

Switch#show hosts
Default domain is not set
Name/address lookup uses static mappings

Codes: u - unknown, e - expired, * - OK, ? - revalidate
       t - temporary, p - permanent

Host                      Port  Flags      Age Type   Address(es)
Switch#

それではホスト名とドメイン名を設定しましょう。

Switch(config)#hostname tc0001
tc0001(config)#ip domain-name jinnai73.com
tc0001(config)#end
tc0001#show hosts
Default domain is jinnai73.com
Name/address lookup uses static mappings

Codes: u - unknown, e - expired, * - OK, ? - revalidate
       t - temporary, p - permanent

Host                      Port  Flags      Age Type   Address(es)
tc0001#

設定できました。これでRSA鍵も生成可能になります。crypto key generate rsaコマンドで生成、鍵長は2048 bitを指定します。

tc0001(config)#crypto key generate rsa
The name for the keys will be: tc0001.jinnai73.com
Choose the size of the key modulus in the range of 360 to 2048 for your
  General Purpose Keys. Choosing a key modulus greater than 512 may take
  a few minutes.

How many bits in the modulus [512]: 2048
% Generating 2048 bit RSA keys ...[OK]

tc0001(config)#

警告メッセージにもある通り、2048 bitでは約1分ほど時間がかかりますが、2016年現在1024 bit以下のRSAは(少なくともインターネット上では)使わない方が良いというのは異論が無いところでしょう。

この時点でSSHでの接続が可能になります。テストのため自分自身に接続してみましょう。

tc0001#ssh -v 2 -l Jinnai73 192.168.1.1
tc0001#ssh -v 2 -l Jinnai73 192.168.1.1

Password:

tc0001>

できました。sshのv1はセキュリティに問題があるため禁止しましょう。一度ログアウトして、sshをv2に限定したのちに、v1での接続ができないことを確認します。

tc0001(config)#ip ssh version 2
tc0001(config)#exit
tc0001#ssh -v 1 -l Jinnai73 192.168.1.1

[Connection to 192.168.1.1 aborted: error status 0]
tc0001#

うまくできています。この状態ではSSHアクセスした後に特権モードに入ろうとしてもできないため、enable secretで特権パスワードの設定もしておきましょう。

5. おわりに

思ったよりボリュームが増えてしまいました。明日ももう少し、機器管理を勉強しようと思います。

jinnai73
ネットワーク運用、構築。 金融系の経験多め。 現職はデータセンター会社。
https://github.com/jinnai73
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away