Oracle新人のRACインストール その7
<Oracle新人のRACインストール その7>
ペンネーム: “world-cup” famous beagle
今回は、SSHについて。
「印旛くん、まだインストールできないの?」
「あ、今からSSHの設定をやるところです。
そろそろ事前準備が終わると思うんですけど・・・」
「ふーん、早くやって。どうせSSHが何かわかんないんでしょ?」
「あ、はい。マニュアルには鍵の構成とかって書いてありました」
「マニュアル通りにやればできるから、とりあえずやってみて。
やればなんとなくわかるから、その後調べて確認して」
「はい、わかりました」
—–SSHの構成手順—–
SSHを構成するには、各ノードで次の手順を実行する必要があります。 (今回は、node1,node2の2ノードの場合) 「SSHが何かはよくわからないけど、とにかくやってみよう」 1.Oracleユーザのホームディレクトリ(/home/oracle)へ移動 $ cd $HOME(/home/oracle) 2.鍵を格納するディレクトリを作成し、権限を変更する $ mkdir .ssh $ chmod 700 .ssh 「権限が"700"ってことは、どういうことだっけな?見てみよう」 $ ls -ald .ssh drwx------ 2 oracle oinstall **** *月 ** **:** .ssh 「oracleユーザだけに読み書き実行権限があるのか・・・。 かといってどういうことなのかはわかんないな」 3.2で作成したディレクトリに移動する $ cd .ssh 4.RSA鍵を作成する $ ssh-keygen -t rsa ここで、鍵ファイルのデフォルトの場所を受け入れます。 パスフレーズを入力する。 5.DSA鍵を作成する $ ssh-keygen -t dsa ここで、鍵ファイルのデフォルトの場所を受け入れます。 パスフレーズを入力する。 →.sshディレクトリ内に以下の鍵が作成される。 $ ls id_dsa id_rsa id_dsa.pub id_rsa.pub →両ノードで鍵を作成します 「RSAとDSAっていう鍵があるのか。 鍵っていっても何に使うのかよくわかんないな。中身を見てみよう」 $ view id_rsa -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,C13EC3F82A1D71A4 E36kiQR5uqEV6VeeS7wCdD7Ky23joamjrbf6B+ZXNeNz6J9iLdqlCCFPDGfRH30A dDaO5AL4bJC9mpHqgRNX/aP/gzWIPUL7mXuhoLp4gWz/6OP/4c18DVDfVc34hLYg Aq0nZhfZ9A2sFIT5GcDPsqmNN4AEaXullQ2R6Yj89MFE3J4+fnD9BsKLf7V47T0u ----------中略---------------
—–END RSA PRIVATE KEY—–
「全く読めない。ダビンチコードかな?
富樫さん、RSA鍵っていうのの中身を見てるんですけど、全く読めなくて」
「あぁ、SSHのことかな?それは読めなくていいんだよ、暗号だから」
「あ、じゃあやっぱりダビンチコードですか?」
「ダビンチコードじゃないけど、コンピュータだけがわかる暗号だね」
「なんで暗号にしてるんですか?
誰に読まれたくないのか、よくわかんないんですけど?」
「それは、困ったね。SSHは、SecureShellの略なんだけど、
誰に読まれたくない、っていうよりは、より安全に通信しましょう、
って感じかな。普段印旛くんが使ってるTelnetは、ログインの情報とかはその
ままの文で流れてるんだよね。そうすると、誰でも読めちゃうから、
それを読めないように暗号化してるんだよ」
「あー、なるほど」
6.node1,node2のパブリックキーから、authorized_keysを作成する $ ssh node1 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys $ ssh node1 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys $ ssh node2 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys $ ssh node2 cat /home/oracle/.ssh/id_dsa.pub >> authorized_keys 「あ、これはなんかわかる気がする。RACがインターコネクトを介して相互に 情報をやりとりするためかな?お互いの鍵の情報を持ってないとだめだもんね」 7.authorized_keysの権限を変更する $ chmod 600 authorized_keys 8.node1で作った、authorized_keysをnode2にコピーする $ scp authorized_keys node2:/home/oracle/.ssh/
「やっぱりそうだ。authorized_keysっていう1つの鍵をRACを構成するノード
に配ることで、相互に通信ができるようになるんだ」
9.node2でauthorized_keysの権限を変更する $ chmod 600 authorized_keys
「よし、富樫さん鍵の交換ができたのでこれでSSHができるようになりました
よね?」
「確認してみなよ。
“ssh date”でパスワードが聞かれなければOKだよ」
「はい」
$ ssh date password:
「あれ?パスワードを聞かれちゃった」
「それじゃ駄目だね。なんか手順をぬかしてない?」
「うーんと・・・。
あ、次にユーザ等価関係の有効化っていうのがありますけど」
「うん、それだね」
10.ユーザ等価関係の有効化 $ exec /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add
RSA Keyのパスワードを入力します
「よし。これでできるかな。あせらずに最後の手順まで見てみよう」
11.次のコマンドを実行し、SSHが正しく動作するかを確認する
$ ssh date
注意: 特定のシステムからのノードの接続に初めてSSHを使用した場合、
次のようなメッセージが表示されることがあります。
The authenticity of host ‘node1 (140.87.152.153)’ can’t be
established.
RSA key fingerprint is
7z:ez:e7:f6:f4:f2:4f:8f:9z:79:85:62:20:90:92:z9.
Are you sure you want to continue connecting (yes/no)?
プロンプトでyes を入力して、次に進みます。再度、このシステムからこのノー
ドに接続したときには、このメッセージは表示されなくなります。
(参照:Oracle Database Oracle Clusterware および Oracle Real Application
Clusters インストレーション・ガイド 10g リリース2(10.2)for Linux)
「よし。富樫さん、できたみたいです」
「よかったね。じゃあ、岸田さんにつっこまれる前に少しSSHを勉強しといた
ほうがいいんじゃない?」
「そうですね。ありがとうございます」
「じゃあ、早速調べてみよう。そもそも、SSHが何か調べなきゃ」
—–SSHとは—–
■暗号化されているリモートシェル
■通信を暗号化することで、情報を外部に漏らさず安全に通信できる
「うん。この辺は、富樫さんに教えてもらったな。
よくわからないのは、どういうメカニズムで暗号化したり、復号してるかな?」
SSHは、公開鍵と秘密鍵とパスフレーズの組合せを使います。
“.pub”がついているほうが、公開鍵です。ついていないほうが、秘密鍵です。
手順の中にもあったように、常に公開鍵と秘密鍵が一対で生成されます。
SSHで通信するためには・・・
1.秘密鍵をローカルホストの$HOME/.ssh/id_rsaに置く。
2.公開鍵をリモートホストの$HOME/.ssh/authorized_keysに追加する。
3.事前にパスフレーズを入力し秘密鍵を復号したものを、ssh-agentに記憶
させる。
SSHは、公開鍵を使ってデータを暗号化し、秘密鍵を使ってデータを元に戻し
ます。RACの場合は、各ノードで秘密鍵と公開鍵を作り、公開鍵を集めて、全
てのノードで持っていれば、SSHで通信することが可能になります。
「なるほど。だから、authorized_keysの中に、公開鍵を集めて各ノードに配
るのか。こんな流れでRACは、データのやりとりをするのかな・・・
1.node1のauthorized_keysでデータを暗号化する
2.暗号化したデータをnode2に送信する
3.node2は、秘密鍵を使ってデータを複合する
こうすることで、RACの場合は、もしインスタンスの数が増えていっても、お
互いにSSHでやりとりができるようになるんだな。
あと、わからなかったのは、”ユーザ関係の有効化”だけど、これは、ssh-agent
っていうエージェントに鍵を覚えさせておくことで、パスワードを何度も入力
する必要がなくなるってことか。よーし、わかった!」
「よし、設定がきっちりできたところで、もう一度、確認してみよう」
$ ssh date Mon Jun 12 19:42:09 JST 2006
「岸田さん、できました!SSHもちゃんと設定できてます」
「いちいち報告しなくていいから、早くインストールして」
「はい・・・」
ワールドカップが始まりました。
寝不足はやむをえないでしょう。
これを機に、あまり寝なくても仕事に対応できる、
体力づくりをしようかと考えています。