運用・管理 / Secure Shell


SSHサーバー


Secure Shell(SSH)は、暗号/認証技術を利用してネットワーク経由の端末ログインなどを安全に行うためのプロトコルです。通信内容の暗号化により盗聴や改ざんを防ぐほか、サーバーやユーザーの認証機能によってなりすましを防ぐ効果もあります。

また、サブアプリケーションであるSCP(Secure CoPy)やSFTP(Secure File Transfer Protocol)によって安全なファイル転送を行ったり、ポートフォワーディング機能を用いて簡易的なVPNを構築したりすることもできます。

本製品は、SSHバージョン1とバージョン2に対応したサーバー機能を備えています(IPv4、IPv6両対応)。認証方式はパスワード認証と公開鍵認証(DSA、RSA)をサポートしています(SSHバージョン1は同バージョンの仕様によりRSAのみ)。

SSHサーバー

SSHサーバー機能は初期設定では無効です。

なお、起動時にAMFネットワーク未検出時の拡張動作が機能した場合、SSHサーバーは有効化されますが、その設定はAMFネットワーク未検出時の一時的な設定であるため、運用上の必要性に応じて無効化してください。

以下では、本製品をSSHサーバーとして動作させるための基本設定について説明します。SSHはIP上で動作するため、IPの設定までは済んでいるものとします。

ここでは、初期設定のユーザーである「manager」と、新規に登録したユーザー「admin」に対し、SSHバージョン2によるログインを許可するよう設定します。managerはパスワード認証のみ、adminはパスワード認証とDSA公開鍵認証の両方を使えるものとします。なお、SSHバージョン1は無効にします。

  1. 権限レベル15の新規ユーザー「admin」を登録します。
    awplus(config)# username admin privilege 15 password adkf8KH!
    

  2. SSHサーバーのホスト鍵(Host Key)を作成します。これには、crypto key generate hostkeyコマンドを使います。本例ではSSHバージョン2だけを使用するため、同バージョン用のDSA鍵を作成します(SSHバージョン1も併用する場合は、同バージョン用のRSA1鍵も作成する必要があります)。
    awplus(config)# crypto key generate hostkey dsa
    Generating host key (1024 bits dsa)
    This may take a while. Please wait ... Done
    
    WARNING: The SSH server must now be enabled with "service ssh"
    

  3. 初期設定ではバージョン1、2の両方が有効なので、ssh serverコマンドを使ってバージョン2だけを使うよう設定します。
    awplus(config)# ssh server v2only
    

  4. SSHサーバーを有効化します。
    awplus(config)# service ssh
    
    Note
    service sshコマンドの実行時にSSHバージョン2用のホスト鍵が1つも存在していない場合は、SSHバージョン2用のRSA鍵(1024ビット)が自動的に生成されます(すでに存在している場合はその鍵が使われます)。

  5. SSHサーバーの有効化直後は、SSHログインが可能なユーザーは存在しません。SSHログインを許可するには、ssh server allow-usersコマンドを使います。ここでは、初期設定の管理者ユーザー「manager」と新規作成した管理者ユーザー「admin」にSSHログインを許可するよう設定します。
    awplus(config)# ssh server allow-users manager
    awplus(config)# ssh server allow-users admin
    

  6. 以上でmanagerとadminがパスワード認証でログインできるようになりました。続いて、adminに対する、公開鍵認証の設定を行います。クライアントPC上において、SSHソフトウェア付属のユーティリティーなどでユーザー「admin」の公開鍵ペアを作成してください。公開鍵のアルゴリズムには、DSA(バージョン2)、RSA(バージョン2)、RSA1(バージョン1)の3種類がありますが、ここではバージョン2用のDSA鍵を使うものとします。

  7. PC上で作成したユーザー「admin」用のDSA公開鍵をダウンロードします。ここでは、公開鍵がpchost.example.comというコンピューター上の「admin_id_dsa.pub」という名前のファイルに格納されているものとし、同コンピューターからSCPプロトコルでローカルファイルシステムに転送(リモートコピー)するものとします。
    awplus(config)# end
    awplus# copy scp://pcuser@pchost.example.com/tmp/admin_id_dsa.pub flash
    Enter destination file name [admin_id_dsa.pub]: 
    pcuser@pchost.example.com's password: XXXXXXXX ↓ (実際には表示されません)
    Copying..
    Successful operation
    

    Note
    リモートコピーの方法については、copyコマンドのページや「運用・管理」の「ファイル操作」をご覧ください。

  8. adminのDSA公開鍵を「信頼済みユーザー公開鍵リスト」(Authorized Keysデータベース)に登録します。これでadminは、公開鍵認証によるログインができるようになります。
    awplus# configure terminal
    Enter configuration commands, one per line.  End with CNTL/Z.
    awplus(config)# crypto key pubkey-chain userkey admin admin_id_dsa.pub
    

設定は以上です。

■ SSHサーバーへの接続を特定のホストからだけに制限することもできます。これには、ssh server allow-usersコマンドの省略可能な第2パラメーターHOSTNAME-PATTERNを使います。ホストによるアクセス制限はSSHユーザーごとに設定します。たとえば、SSHユーザー「manager」に対し、192.168.10.186からのみ接続を許可するには、次のようにします。
awplus(config)# ssh server allow-users manager 192.168.10.186

IPアドレスを範囲指定することもできます。たとえば、SSHユーザー「manager」に対し、192.168.10.0/24の範囲からのみ接続を許可するには、次のようにします。アスタリスク(*)はワイルドカードの指定で、任意の文字列にマッチします。
awplus(config)# ssh server allow-users manager 192.168.10.*

Note
ワイルドカードを用いてIPアドレスを範囲指定した場合、「% Warning: ssh server resolve-hosts is not enabled.」という警告メッセージが出ますが、次項で述べる「ホスト名による指定」を使っていない場合は無視してかまいません。

Note
アクセスが許可されていないホスト/ユーザーからSSHでログインしようとした場合、コンソール上に「sshd[3374]: fatal: mm_request_receive_expect: read: rtype 48 != type 46」のようなデバッグメッセージが表示されます。

■ HOSTNAME-PATTERNをホスト名で指定することもできますが、その場合は次の追加設定が必要です。

たとえば、delirium.example.comという名前を持つホストからのみ、ユーザー「admin」でのログインを許可するには、次のようにします。
awplus(config)# ip name-server 172.16.10.8
awplus(config)# ssh server resolve-hosts
awplus(config)# ssh server allow-users admin delirium.example.com

Note
ssh server resolve-hostsコマンドを実行せずにホスト名を指定した場合は「% Warning: ssh server resolve-hosts is not enabled.」という警告メッセージが出ます。ホスト名を指定する場合は必ずssh server resolve-hostsコマンドを実行して、ホスト名の逆引きを有効化してください。逆引きが無効の場合、ホスト名パターンを含むエントリーには一切マッチしませんのでご注意ください。

■ SSHサーバーの状態はshow ssh serverコマンドで確認できます。
awplus# show ssh server
Secure Shell Server Configuration
------------------------------------------------------------
SSH Server                         : Enabled
Protocol                           : IPv4,IPv6
Port                               : 22
Version                            : 2
Services                           : scp, sftp
User Authentication                : publickey, password
Resolve Hosts                      : Disabled
Session Timeout                    : 0 (Off)
Login Timeout                      : 60 seconds
Maximum Startups                   : 10
Debug                              : NONE

■ 作成したホスト鍵の情報はshow crypto key hostkeyコマンドで確認できます。
awplus# show crypto key hostkey
Type    Bits  Fingerprint
-------------------------------------------------------------
dsa     1024  2e:d7:cf:82:42:8e:74:fa:f4:ca:14:3c:0c:ab:42:fd

awplus# show crypto key hostkey dsa
ssh-dss AAAAB3NzaC1kc3MAAACBAMpRf/HUiLLvgfR0O43RUZz7/VupV6rjgSPLRpLbYRbt9jP4oBJG
9kNQtVGsCfAixIsW+3je+Lke2NOQTrwmoYfVfwN/9efJkeGjPy7QYcoZ4kLZFHrg4Tcsuwfg4QAD17kx
nAIhT8rTh5VHH1XPOuahv51+YsLsmJybObm02uQTAAAAFQCEDAD4nP4XorJ2EMngYzHjMrxIlQAAAIB4
joc6+rap4lfCr1A1Us1j+2jcCecmjnyJJFt+kM/EHkwAilcPZJVxPP4QTQSXMDu/yRvwvDWOaQa+C+nl
+1JMd/DtYvZMAzmAQkaE0NPJ3sYgoRiCvlA5Gpr2QCBcQehdkSb/VskX3SHgvoICM/1qbWA64uq6TpBz
QrMBguFo9QAAAIEAvckA/HlzFMdniNpvM1PoPMH4eh9ib8W23w17lms8jpZ0yUpSkP/A++HKLWVUkOaP
4rarGnsBQlrLabRNJdb7Ew05Zi2ffIXTGaJGF6tJe/eoAhYRDMi7r96LVM03ZrYS/lkO1/C/OeIf+/KM
UM0gklDKfwuBCSXapPB7pxbRVmM=

■ ユーザーの公開鍵の情報はshow crypto key pubkey-chain userkeyコマンドで確認できます。
awplus# show crypto key pubkey-chain userkey admin
 No Type  Bits Fingerprint                                     Comment
-------------------------------------------------------------------------------
  1 dsa   1024 a6:af:50:12:63:56:0c:cb:c5:55:45:e3:6e:e9:c5:84 admin@zebra2

awplus# show crypto key pubkey-chain userkey manager 1
ssh-dss AAAAB3NzaC1kc3MAAACBANr2Pdv1JUYEcZ1WEsVspCQPKcfcvIE/r72O+xURyWw8UNEIpYMw
4K5uARFJcC5NJqRztIQdq2Gw5d3jVkSgzgDYo/FRfendpn0f7wYx5zaI0apdC90Z03EHUyoY+To2pbHJ
6JmuvxwHKO4ZRwUYje9JGJFo0P2XVrf1mSauXo+FAAAAFQDHTbswc8KekH6tIGlZIWJMD8oZoQAAAIEA
zpQTJC1XZHBpZIqa6tQ42zt8q30pNxFUkJHUdahhV8+zuHyNgumDfAB57nlmdDOjbUzq2DrNVeU+fipQ
M9ZZmZbeZNLSKSIl8sCMuHNdI2eISYygoJxQSKe6gMlH/Z6B5FOdhf+0m96DudiSNxc82fXmqPs+fSnv
owhDiMlDPF8AAACAP+h/1iWUOhvO/abnwN0YK0N6W/F0IMIxgy+fv2rKw1hwFx/r5WAfzNQW6oIN3O+j
ZDsx1pkkF4xhwtND7GNS5OvTKob6y7bQkQetHhXekyX9UsiGBPuVJXHWkeJv9fV5q5EudyJCn4nB6vUb
zYz4h1wZJwQGd5toRolb12Pg91Q= admin@zebra2

■ 現在ログインしているユーザーの一覧を確認するには、show usersコマンドを実行します。
awplus> show users

■ 確立中のSSHセッションはshow sshコマンドで確認できます。
awplus# show ssh
Secure Shell Sessions:

   ID Type Mode   Peer Host        Username   State       Filename
------------------------------------------------------------------------------
 3402 ssh  server 192.168.20.2     admin      open

■ 確立中のSSHセッションを切断するには、clear sshコマンドを使います。
awplus# clear ssh 3402


(C) 2019 アライドテレシスホールディングス株式会社

PN: 613-002735 Rev.C