ようこそNICのホームページへ(なが〜い試運転中)    あなたは2001/5/12以来 人目の来訪者です。
HP パソコン 健康 落語 海外 思うまま 電子工作

ssh2で通信可能

floraでssh2で通信を可能にする(2011/09/15)
Last update:2011/10/07  build:2011/10/05




サーバを新しくしたので、sshも再度導入することにした。(2011/09/15)

0 前提

 ローカルネットワークからtelnetでアクセスしてssh環境を作成(前回と同じ)
 ハードウェア:日立 Flora 270W PC8MF1 (CPU:Core2Duo T5500 Memory 1GB HDD 40GB)
      OS:Freebsd−8.2
 webサーバ:apache−2.2.20
 SSL   :OpenSSL 0.9.8q 2 Dec 2010
 SSH   :OpenSSH_5.4p1 FreeBSD-20100308, OpenSSL 0.9.8q 2 Dec 2010
 認証  : DSA使用
 クライアント:KAZE2 os:WindowsXP SP3 クライアントソフト:UTF-8 TeraTerm Pro V4.44

 

1 ssh2用のDSA鍵を作成


$ pwd /usr/home/USER      ←ログオンユーザーのホームディレクトリー
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen -t dsa   ←ssh2用のDSA鍵を作成する
Generating public/private dsa key pair.
Enter file in which to save the key (/home/USER/.ssh/id_dsa):  ←キーを保存するディレクトリー(CRのみ入力)
Enter passphrase (empty for no passphrase):     ←パスフレーズを入力
Enter same passphrase again:                    ←同じパスフレーズを再入力
Your identification has been saved in /home/USER/.ssh/id_dsa.
Your public key has been saved in /home/USER/.ssh/id_dsa.pub.
The key fingerprint is:
4d:8e:7d:fa:44:AA:AA:AA:AA:AA:AA:AA:aa:01:c6:1d USER@Flora-T5500.ddo.jp
The key's randomart image is:
$ 
$ pwd
/usr/home/USER/.ssh
$ l
total 4
-rw-------  1 nic  nic  751 Sep 15 00:04 id_dsa     ←mod600が大切またはmod400
-rw-r--r--  1 nic  nic  612 Sep 15 00:04 id_dsa.pub
$ touch authorized_keys2
$ l
total 4
-rw-r--r--  1 nic  nic    0 Sep 15 00:08 authorized_keys2
-rw-------  1 nic  nic  751 Sep 15 00:04 id_dsa      ←秘密鍵(クライアントPCにのみ置く)
-rw-r--r--  1 nic  nic  612 Sep 15 00:04 id_dsa.pub  ←公開鍵(サーバー側に置く基本データ、処理が必要)
キーの作成完了

2 サーバー側での処理、公開鍵を登録

 自分のホームディレクトリの下で
 公開鍵を登録する
 /home/USER/.sshにおいて
 touch authorized_keys2          ←ファイルが無い場合は作る。ある時は不必要
  chmod 644 authorized_keys2       ←モードの変更
  cat  id_dsa.pub   >>  authorized_keys2 ←公開鍵を追加書き込み

3 sshd_configの変更

/etc/ssh/sshd_configの以下を追加変更(OpenSSH_5.4p1バージョンではDSAがあった)
注釈行を無視して有効な文のみを取り出した( grep -v -e '^[ \t]*#' -e '^$' sshd_config )

/etc/ssh/sshd_configの編集
注釈行抜きだと

 Flora-T5500# grep -v -e '^[ \t]*#' -e '^$' sshd_config 
 Port 22
 Protocol 2                                   ←変更   # 2011/9/15(木)              
 HostKey /etc/ssh/ssh_host_dsa_key            ←変更   # 2011/9/15(木)
 LoginGraceTime 2m
 PermitRootLogin no
 MaxAuthTries 6
 DSAAuthentication yes                        ←変更   # 2011/9/15(木)
 AuthorizedKeysFile      .ssh/authorized_keys2 ←変更   # 2011/9/15(木)
 PasswordAuthentication no                     ←変更   # 2011/9/15(木) パスワード認証をさせない
 PermitEmptyPasswords no                       ←変更   # 2011/9/15(木)
 ChallengeResponseAuthentication no            ←変更   # 2011/9/15(木) PAM(パスワード)認証をさせない
 MaxStartups  5:70:10                          ←変更   # 2011/9/15(木)
 Subsystem       sftp    /usr/libexec/sftp-server
 AllowUsers USER1 USER2                         ←変更   # 2011/9/15(木) ユーザーを限定
 Flora-T5500# 

4 クライアント側の処理(前回と同じ)

 クライアントパソコンに秘密鍵を移動
  サーバー側の/home/USER/.ssh/id_dsa を
  クライアント側に移動。
   (本来は、秘密鍵の移動がないように、クライアント側で鍵を作り、公開鍵をサーバーに送る)
 teratermを使うことから
    c:\Program Files\teraterm\ssh\id_dsa
  に置く。
 teratermのprivate key fileを 上記に設定。
 後は、ユーザーIDとパスフレーズを入力してログオン
あれ? つながらない!! ここは前回と違う
tail /var/log/messages を取ると
Sep 15 21:35:17 Flora-T5500 sshd[19978]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key
エラーが出ている。
/etc/ssh/ssh_host_dsa_keyが読めないようだ。確かにこのファイルは無い。

なんだったけ!!??

5 ホストキーが無かった

ググっていいると
ホストキーが無いとのこと
/etc/ssh/ssh_host_dsa_key
の作成の仕方が載っていた。(前回も作ったのだろうか? 記憶と記録がない)

# ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key  DSAキー
# ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_key    RSAキー

# ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key

Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
2e:93:53:e0:55:66:5b:b5:6d:dc:0e:21:15:9d:32:08 root@Flora-T5500.ddo.jp
The key's randomart image is:
+--[ DSA 1024]----+
|         E= +o=o.|
|         + + + *o|
|      . . .   = =|
|     . o       + |
|      . S       .|
|       +         |
|      = .        |
|       +         |
|                 |
+-----------------+


最初にsshdを立ち上げた時に自動作成されると書いてあるHPもあった。
(これはsshdを自動たち上げするスクリプトの中にホストキーを作成する部分があるようだ。)
しかし自動作成されないので自分で作った。

これでsshによる接続が可能となった。
あとは22番ポートを適当に変更して外部に公開するのみ。


6 SSHのポート番号を変更(2011/10/06)追記


 inetdを利用してsshを使うためポート番号の変更は/etc/services にあるssh(3つ)関係の  ポート番号を変更した(例:11111)。
#ssh		 22/sctp   #Secure Shell Login
#ssh		 22/tcp	   #Secure Shell Login
#ssh		 22/udp	   #Secure Shell Login
ssh		 11111/sctp    #Secure Shell Login
ssh		 11111/tcp     #Secure Shell Login
ssh		 11111/udp     #Secure Shell Login
 このままでは接続できないのでinetdを再立ち上げする。  これで、別ポート番号で接続可能となった。
 あとはCTUのポート解放だ。


7 CTUのポートの解放(2011/10/07)追記

01 CTUのトップ画面
02 静的アドレス変換設定
   (ポート指定)
03 静的アドレス変換設定
   (ポート指定)設定中
04 静的アドレス変換設定
   (ポート指定)設定後
05 FIREWALL設定のトップ画面
06 FIREWALL設定前
07 FIREWALL設定後

パソコンのことへ     HomePage     このページのトップ