【SSHについて】





   このHPはSSH(Cisco機器の設定)についてまとめたものです。



1-1 SSH の概要

SSH は、ネットワークに接続された他のデバイスを遠隔操作するためのプロトコル。Telnet通信は、ネットワーク上を平文で暗号化せずにデータを送受信するが、SSHでは「公開鍵RSA」を使用することで、データを暗号化および、復号化して送受信を行うことで、盗聴やなりすましを防ぎ、セキュリティを高めることが出来る。












1-2 CiscoデバイスでのSSHの設定

CiscoデバイスにSSHでアクセスできる様にするには、下記の設定を行う必要がある。

@ホスト名の設定
Aドメイン名の設定
BRSA暗号鍵を生成する
Cユーザーアカウントを作成する
Dローカル認証の設定
ESSHの接続許可の設定
FSSHのバージョン設定



【手順@:ホスト名の設定】

Ciscoルーターは、デフォルトで「Router」という名前が付けられている。
ホスト名を変更するには、グローバルコンフィグレーションモードで「hostname」コマンドを実行する。

《コマンド》
(config)#hostname <ホスト名>




【手順A :ドメイン名の設定】

SSH暗号鍵の生成には、グローバルコンフィグレーションモードで「ipdomain-name」コマンドを実行する。

ドメイン名は通常、「●●.com」等の様に、所属している組織のドメインを指定する。ホスト名とドメイン名は、暗号鍵の生成に必要になる。

《コマンド》
(config)#ip domain-name <ドメイン名>




【手順B:RSA暗号鍵を生成する】

RSA暗号鍵は、公開鍵暗号方式の1つであるRSAで使用される鍵の事。SSHの通信の際に使用される。RSA鍵を生成するには、グローバルコンフィグレーションモードで「crypto key generate rsa」 コマンドを実行する。

《コマンド》
(config)#crypto key generate rsa [modulus <ビット数>]

modulusで鍵の長さを指定することが出来る。
SSHバージョン2を使用する場合は、鍵の長さを768ビット以上に設定しなければならない。
ホスト名がデフォルトの「Router」の場合やドメイン名が設定されていない場合は、このコマンドが実行できず、RSA鍵を生成できないため、先に手順@:ホスト名 の設定と手順A :ドメイン名の設定を行う必要がある。




【手順C:ユーザーアカウントを作成する】

SSH接続を許可するクライアントのユーザー名とパスワードのペアを設定する。

《コマンド》
(config)#username <SSHクライアントのユーザー名>  password <パスワード>




【手順D:ローカル認証を設定する】

AAAの設定をしていない場合は、ローカルユーザーアカウントを使用して認証を行うため、ラインコンフィグレーションモードで「login local」 コマンドを実行して認証方法を変更しておく必要がある。

《コマンド》
(config)#line vty <回線番号>
(config-line)#login local




【手順E :SSHの接続許可の設定】

SSHの接続許可の設定をするには、ラインコンフィグレーションモードで、下記の「transport input」コマンドを実行する。

《コマンド》
(config)#line vty <回線番号>
(config-line)#tranport input <telnet/ssh/all/none>

sshを指定するとSSH接続でのみログイン可能になり、TELNET接続は拒否される。
同様にTELNETを指定するとTELNET接続でのみログインが可能になり、SSH接続は拒否される。
「all」を指定すると、両方が使用できる様なる。
「none」を指定すると、仮想端末(VTY)接続そのものを禁止する。




【手順F :SSHのバージョン設定】

SSHには、バージョン1とバージョン2の2つのバージョンが 存在する。
SSHv1よりSSHv2の方がより強力な暗号化アルゴリズムをサポートしている。
1を指定するとバージョン1と2の両方での接続を許可し、2を指定するとバージョン2での接続のみ許可する。

《コマンド》
(config)#ip ssh version 〔1|2〕





1-3 SSH接続の設定例


ここでは下図のSSHクライアントからSSHサーバーに対して、SSHの設定を行う。
















◆SSH接続

CiscoIOSからSSH接続を実行するには、「ssh -l」コマンドを使用する。

《コマンド》
(config)# ssh -l <ユーザ名> <SSHサーバーのIPアドレス>









◆SSH接続の確認

SSHサーバー側で、現在のSSH接続をしているユーザーのステータスを表示するには、「show ssh」コマンドを実施する。


《コマンド》
#show ssh








1-4 SSH公開鍵の配布

SSHサーバーが生成した2つの暗号鍵のうち、公開鍵を個々のSSHクライアントにあらかじめ渡しておく必要がある。
また、公開鍵を表示するには特権モードで「show cryptyo keymypubkeyrsa」 コマンドを使用する。


《コマンド》
#show crypto key mypubkey rsa