2.2.5 SSHの接続設定方法(UNIXの場合)

SSHの接続設定方法について説明します。なお,SSHの認証には,公開鍵認証方式を使用します。

SSHを接続するには次のような設定が必要となります。

公開鍵認証の概念について,次の図に示します。

図2-16 公開鍵認証の概念図

[図データ]

なお,クラスタシステムでの公開鍵認証には,実行系ノードと待機系ノードで共通の鍵を使用する方法と別々の鍵を使用する方法があります。

実行系ノードと待機系ノードで共通の鍵を使用する場合は,実行系ノードの鍵ファイルを待機系ノードの鍵ファイルに上書きコピーします。共通の鍵を使用する場合の概念について,次の図に示します。

図2-17 公開鍵認証の概念図(実行系ノードと待機系ノードで共通の鍵を使用する場合)

[図データ]

実行系ノードと待機系ノードで別々の鍵を使用する場合は,実行系ノードの鍵ファイルと待機系ノードの鍵ファイルの両方を監視対象ホストに登録します。別々の鍵を使用する場合の概念について,次の図に示します。

図2-18 公開鍵認証の概念図(実行系ノードと待機系ノードで別々の鍵を使用する場合)

[図データ]

<この項の構成>
(1) SSHサーバの公開鍵認証を有効にする
(2) 鍵を作成する
(3) 公開鍵を監視対象ホストに配置する
(4) 接続を確認して指紋を登録する

(1) SSHサーバの公開鍵認証を有効にする

公開鍵認証を有効にするための設定手順を次に示します。

  1. 監視対象ホストにスーパーユーザーでログインする。
  2. /etc/ssh/sshd_configを開く。
  3. PubkeyAuthenticationをyesに書き換える。
  4. /etc/ssh/sshd_configを保存して閉じる。
  5. 次のコマンドを実行し,sshdサービスを再起動する。

    [root@TargetHost.ssh]$ /etc/rc.d/init.d/sshd restart

    参考
    スーパーユーザーにログインして情報収集する場合は,/etc/ssh/sshd_configを開きPermitRootLoginをyesに書き換えてください。また,書き換えたあとにsshdサービスを再起動してください。

(2) 鍵を作成する

鍵は自動で作成されます。手動で作成することもできますが,特別な事情がない場合は,自動で作成された鍵を使用することをお勧めします。

(a) 自動で鍵を作成する

PFM - RM for Platformをインストールするとき,自動的に「/opt/jp1pc/agt7/.ssh/」に秘密鍵と公開鍵が作成されます。

秘密鍵と公開鍵の格納先ディレクトリ,ファイル名および設定値について次の表に示します。

表2-30 秘密鍵と公開鍵の格納先ディレクトリ,ファイル名および設定値

項番格納先ディレクトリおよび
ファイル名
属性所有者説明
1/opt/jp1pc/agt7/.ssh/700root:root秘密鍵と公開鍵を格納する隠しディレクトリです。
2agt7600秘密鍵のファイルです。
3agt7.pub644公開鍵のファイルです。
(凡例)
-:該当しません

注意
自動で作成した鍵を使用する場合,作成した鍵ファイルを削除しないでください。削除すると,上書きインストールやバージョンアップインストールで鍵ファイルが自動で再作成されたときに,鍵情報が監視対象ホストと不一致になって,監視対象ホストに接続できなくなります。鍵ファイルを削除したために,上書きインストールやバージョンアップインストールのあとで,監視対象ホストに接続できなくなったときは,「(3) 公開鍵を監視対象ホストに配置する」の手順を実行して,すべての監視対象ホストに公開鍵を配置し直してください。

(b) 手動で鍵を作成する

手動で鍵を作成するための設定手順を次に示します。

PFM - RMホストにスーパーユーザーでログインし,ssh-keygenコマンドを実行して鍵を作成します。鍵の種類はRSA暗号とDSA暗号のどちらかを選択できます。RSA暗号とDSA暗号は暗号化アルゴリズムが異なるだけなので,操作方法は同様です。ここでは,RSA鍵を作成する場合について説明します。

  1. PFM - RMホストにスーパーユーザーでログインする。
  2. ssh-keygen -t rsaコマンドを実行する。
    RSA鍵を作成する場合を示しています。
    DSA鍵を作成する場合は「-t rsa」オプションの代わりに「-s dsa」オプションを指定してください。
  3. 秘密鍵の出力先と名前を決める。
    デフォルトは「~/.ssh/id_rsa(RSA)」が設定されます。
  4. リターンキーを2回押す。
    秘密鍵のパスフレーズの入力を求められるため,何も入力しないでリターンキーを押します。再入力を求められるので,何も入力しないで再度Enterを押します。

ssh-keygen -t rsaコマンドの実行例を次に示します。

[root@RMHost]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): <Enter>
Enter passphrase (empty for no passphrase): <Enter>
Enter same passphrase again: <Enter>
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ax:xx:xx:xx:xx:bx:xx:xc:xx:xx:xx:xd:xd:xa:ed:xx root@RMHost

鍵の作成時の注意事項
  • 秘密鍵の情報は厳重に管理してください。
  • 鍵(公開鍵と秘密鍵のペア)の作成は環境やツールには依存しないため,どのような環境やツールでも問題ありません。ただし,鍵の作成後は,秘密鍵と公開鍵を適切に配置する必要があります。

(3) 公開鍵を監視対象ホストに配置する

作成した公開鍵を監視対象ホストに配置します。なお,監視対象ホストが複数ある場合は,すべての監視対象ホストに対してこの作業を実施してください。

配置する手順を次に示します。

  1. 監視対象ホストに,監視対象の設定時にUserに指定したアカウントでログインする。
  2. cdコマンドを実行して,ホームディレクトリの.sshディレクトリに移動する。
    ホームディレクトリに.sshディレクトリがない場合は,作成してください。.sshディレクトリの属性については700または755を設定し,所有者およびグループについては監視対象ホストの設定時に指定したユーザーに合わせて設定してください。ホームディレクトリおよび.sshディレクトリの属性,所有者およびグループの設定が不正な場合,SSH接続に失敗することがあります。
  3. scpコマンドを実行する。
    すでに作成済みの公開鍵ファイルが受信されます。
  4. catコマンドを実行する。
    公開鍵ファイルの中身が認証鍵ファイルにリダイレクトされます。また,受信した公開鍵ファイルの内容が認証鍵ファイルに追加されます。
    認証鍵ファイルの名前は「/etc/ssh/sshd_config」の「AuthorizedKeysFile」で設定されます。デフォルトでは「~/.ssh/ authorized_keys」が設定されています。
  5. rmコマンドを実行して,受信した公開鍵ファイルを削除する。
  6. chmodコマンドを実行し,認証鍵ファイルの属性を600に変更する。

手順2.~6.のコマンドの実行例を次に示します。

[ClientUser@TargetHost ]$ cd .ssh
[ClientUser@TargetHost .ssh]$ scp root@RMHost:/opt/jp1pc/agt7/.ssh/agt7.pub .
root@RMHost's password: <パスワードを入力>
agt7.pub                                 100%  233     0.2KB/s   00:00
[ClientUser@TargetHost .ssh]$ cat agt7.pub >> authorized_keys
[ClientUser@TargetHost .ssh]$ rm agt7.pub
[ClientUser@TargetHost .ssh]$ chmod 600 authorized_keys

また,PFM - RMホストでssh-copy-idコマンドを実行して,公開鍵を監視対象ホストに配置することもできます。ssh-copy-idコマンドを使用する場合,公開鍵を配置する.sshディレクトリの指定,公開鍵の名前および属性の変更は必要ありません。ssh-copy-idコマンドを使用して公開鍵を配置する手順を次に示します。

  1. PFM - RMホストにスーパーユーザーでログインする。
  2. ssh-copy-idコマンドを実行する。
    公開鍵がコピーされます。
    ssh-copy-idコマンドの詳細については,OpenSSHのマニュアルを参照してください。

手順1.および手順2.のコマンドの実行例を次に示します。

[root@RMHost ]$ /usr/bin/ssh-copy-id -i /opt/jp1pc/agt7/.ssh/agt7.pub ClientUser@TargetHost
29
The authenticity of host 'TargetHost (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'TargetHost,xxx.xxx.xxx.xxx' (RSA) to the list of known hosts.
ClientUser@TargetHost's password: <パスワードを入力>
Now try logging into the machine, with "ssh 'ClientUser@TargetHost'", and check in:

 .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

(4) 接続を確認して指紋を登録する

PFM - RMホストと監視対象ホストが接続できるかどうかを確認する手順について説明します。

  1. PFM - RMホストにスーパーユーザーでログインする。
  2. 作成した秘密鍵を利用し,監視対象ホストに対してsshクライアントコマンドを実行する。
    接続が開始されます。
  3. 初回接続時は,指紋を登録する。
    監視対象ホストの公開鍵の指紋を登録します。ここでは,「yes」を入力してください。「yes」を入力すると,監視対象ホストのプロンプトが表示されます。
  4. 監視対象ホストのプロンプトで,exitコマンドを実行して,一度,監視対象ホストからログアウトする。
  5. PFM - RMホストで,監視対象ホストに対してsshクライアントコマンドを実行して,再度接続する。
    2回目以降の接続時に,何も入力しないで監視対象ホストのプロンプトが表示されれば,PFM - RMホストと監視対象ホストの接続設定は完了です。監視対象ホストのプロンプトでexitコマンドを実行して,監視対象ホストからログアウトしてください。
    エラーが発生した場合や,何か入力を要求された場合は,手順が正しく実施できているかどうか見直してください。

接続を確認するときの設定例を次に示します。

[root@RMHost]$ /usr/bin/ssh -i /opt/jp1pc/agt7/.ssh/agt7 -p 22 ClientUser@TargetHost
The authenticity of host 'TargetHost (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'TargetHost,xxx.xxx.xxx.xxx' (RSA) to the list of known hosts.
Last login: Mon Mar 23 17:17:52 2009 from xxx.xxx.xxx.xxx
[ClientUser@TargetHost ~]$ exit
logout
 
Connection to TargetHost closed.
[root@RMHost]$ /usr/bin/ssh -i /opt/jp1pc/agt7/.ssh/agt7 -p 22 ClientUser@TargetHost
Last login: Mon Mar 23 17:18:00 2009 from xxx.xxx.xxx.xxx
[ClientUser@TargetHost ~]$ exit
logout
 
Connection to TargetHost closed.
[root@RMHost]$

注意
PFM - RM for Platformは前提条件として,事前に指紋認証が完了している必要があります。SSHクライアントの初回接続時に指紋を登録できるため,ここでの手順で完了させておくことをお勧めします。