AIX5.3安裝Oracle11gR2 ssh 互信問題

mengzhaoliang發表於2011-01-19

在叢集節點上配置無口令的 SSH
要配置無口令的 SSH,必須先在每個叢集節點上生成 RSA 或 DSA 金鑰,然後將所有叢集節點成員上生成的所有金鑰複製到授權金鑰檔案 中,該檔案在每個節點上都是相同的。注意,SSH 檔案必須只能由 root 使用者、軟體安裝使用者(grid、oracle)讀取,因為如果其他使用者可以訪問一個私鑰檔案,則 SSH 會忽略該檔案。以下示例中使用 DSA 金鑰。
對於安裝時要使用的 Oracle 軟體安裝所有者(grid、oracle),您必須為每個所有者分別配置無口令的 SSH。
要配置無口令的 SSH,完成以下任務:
在每個節點上建立 SSH 目錄並生成 SSH 金鑰
在每個節點上完成以下步驟:
以軟體所有者身份(此例中為 grid 使用者)登入。
[root@racnode1 ~]# su - grid
要確保您是以 grid 登入的,並驗證使用者 ID 與預期的使用者 ID(即您已為 grid 使用者分配的使用者 ID)一致,輸入 id 和 id grid 命令。確保 Oracle 使用者組和使用者與您當前使用的使用者終端視窗程式的組和使用者 ID 相同。例如:

如有必要,在 grid 使用者的主目錄下建立 .ssh 目錄並設定相應許可權,以確保僅 oracle 使用者具有讀寫許可權:
[grid@racnode1 ~]$ mkdir ~/.ssh
[grid@racnode1 ~]$ chmod 700 ~/.ssh
輸入以下命令,為 SSH 協議生成 DSA 金鑰對(公共金鑰和私有金鑰):出現提示時,接受預設的金鑰檔案位置和無口令短語設定(按 [Enter]):
[grid@racnode1 ~]$ /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_dsa): [Enter]
Enter passphrase (empty for no passphrase): [Enter]
Enter same passphrase again: [Enter]
Your identification has been saved in /home/grid/.ssh/id_dsa.
Your public key has been saved in /home/grid/.ssh/id_dsa.pub.
The key fingerprint is:
7b:e9:e8:47:29:37:ea:10:10:c6:b6:7d:d2:73:e9:03
注:Oracle Clusterware 11g 第 2 版及更高版本不支援使用口令短語的 SSH。Oracle 11g 第 2 版及更高版本必須使用無口令的 SSH。

此命令將 DSA 公共金鑰寫入 ~/.ssh/id_dsa.pub 檔案,將私有金鑰寫入 ~/.ssh/id_dsa 檔案。

絕不要將私鑰分發給任何無權執行 Oracle 軟體安裝的使用者。


對您想使其成為叢集成員的所有其他使用 DSA 金鑰的節點 (racnode2) 重複第 1 步到第 4 步。

將所有金鑰新增到一個公共 authorized_keys 檔案

現在,每個 Oracle RAC 節點都包含用於 DSA 的公共和私有金鑰,您需要在其中一個節點上建立一個授權金鑰檔案 (authorized_keys)。授權金鑰檔案只是一個包含每個使用者(每個節點)的 DSA 公共金鑰的檔案。在授權金鑰檔案包含了所有公共金鑰後,將其分發至叢集中的所有其他節點。

注:每個節點上 grid 使用者的 ~/.ssh/authorized_keys 檔案必須包含您在所有叢集節點上生成的所有 ~/.ssh/id_dsa.pub 檔案中的內容。

在叢集中的一個節點上完成以下步驟以生成授權金鑰檔案,然後分發該檔案。對於此文而言,我將使用叢集中的主節點 racnode1:


從 racnode1(本地節點)中確定所有者的主目錄 .ssh 中是否存在授權金鑰檔案 ~/.ssh/authorized_keys。大多數情況下,該檔案是不存在的,因為本文假設您正在進行新的安裝。如果該檔案不存在,那麼現在進行建立:
[grid@racnode1 ~]$ touch ~/.ssh/authorized_keys
[grid@racnode1 ~]$ ls -l ~/.ssh
total 8
-rw-r--r-- 1 grid oinstall   0 Nov 12 12:34 authorized_keys
-rw------- 1 grid oinstall 668 Nov 12 09:24 id_dsa
-rw-r--r-- 1 grid oinstall 603 Nov 12 09:24 id_dsa.pub
在 .ssh 目錄中,您會看到前面生成的 id_dsa.pub 金鑰以及空白檔案 authorized_keys。


在本地節點 (racnode1) 上,使用 SCP(安全複製)或 SFTP(安全 FTP)將 ~/.ssh/id_dsa.pub 公共金鑰的內容從叢集中的兩個 Oracle RAC 節點複製到剛才建立的授權金鑰檔案 (~/.ssh/authorized_keys) 中。同樣,從 racnode1 進行該操作。系統將提示您為每個訪問的 Oracle RAC 節點輸入 grid OS 使用者帳戶口令。
以下示例是在 racnode1 節點上執行的,假定叢集有兩個節點,分別是 racnode1 和 racnode2:

[grid@racnode1 ~]$ ssh racnode1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'racnode1 (192.168.1.151)' can't be established.
RSA key fingerprint is 2f:0d:2c:da:9f:d4:3d:2e:ea:e9:98:20:2c:b9:e8:f5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'racnode1,192.168.1.151' (RSA) to the list of known hosts.
password: xxxxx

[grid@racnode1 ~]$ ssh racnode2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'racnode2 (192.168.1.152)' can't be established.
RSA key fingerprint is 97:ab:db:26:f6:01:20:cc:e0:63:d0:d1:73:7e:c2:0a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'racnode2,192.168.1.152' (RSA) to the list of known hosts.
password: xxxxx
第一次使用 SSH 從某個特定系統連線到節點時,您會看到類似以下的訊息:

The authenticity of host 'racnode1 (192.168.1.151)' can't be established.
RSA key fingerprint is 2f:0d:2c:da:9f:d4:3d:2e:ea:e9:98:20:2c:b9:e8:f5.
Are you sure you want to continue connecting (yes/no)? yes
在該提示下輸入 yes 繼續。於是,會將公共主機名新增到 ~/.ssh 目錄下的 known_hosts 檔案中,以後再從此係統連線到相同節點時就不會看到此訊息了。


此時,racnode1 上的授權金鑰檔案 (~/.ssh/authorized_keys) 中含有來自叢集中各個節點的 DSA 公共金鑰。
[grid@racnode1 ~]$ ls -l ~/.ssh
total 16
-rw-r--r-- 1 grid oinstall 1206 Nov 12 12:45 authorized_keys
-rw------- 1 grid oinstall  668 Nov 12 09:24 id_dsa
-rw-r--r-- 1 grid oinstall  603 Nov 12 09:24 id_dsa.pub
-rw-r--r-- 1 grid oinstall  808 Nov 12 12:45 known_hosts
我們現在將其複製到叢集中的其餘節點。在我們的雙節點叢集示例中,唯一剩下的節點就是 racnode2。使用 scp 命令將授權金鑰檔案複製到叢集中的所有其餘節點:

[grid@racnode1 ~]$ scp ~/.ssh/authorized_keys racnode2:.ssh/authorized_keys
password: xxxxx
authorized_keys                                   100% 1206     1.2KB/s   00:00

透過登入到節點並執行以下命令,為叢集中的兩個 Oracle RAC 節點更改授權金鑰檔案的許可權:
[grid@racnode1 ~]$ chmod 600 ~/.ssh/authorized_keys
在叢集節點上啟用 SSH 使用者等效性

將包含所有公共金鑰的 authorized_keys 檔案複製到叢集中的每個節點之後,完成本節中的各個步驟以確保正確配置了叢集成員節點之間的無口令 SSH 連線。在本示例中,將使用名為 grid 的 Oracle Grid Infrastructure 軟體所有者。

當您執行本節中的測試 SSH 命令時,如果看到除日期和主機名之外的任何其他訊息或文字,則 Oracle 安裝將失敗。如果任一節點提示您輸入口令或口令短語,則驗證節點上的 ~/.ssh/authorized_keys 檔案中包含了正確的公共金鑰並且您已建立了具有同樣組成員關係和 ID 的 Oracle 軟體所有者。進行必要的更改,以確保您在輸入這些命令時只顯示日期和主機名。您應當確保對生成任何輸出或詢問任何問題的登入指令碼的任何部分進行修改,以便它們僅當 shell 是互動式 shell 時才會生效。


在您希望執行 OUI 的系統 (racnode1) 上,以 grid 使用者身份登入。
[root@racnode1 ~]# su - grid

如果 SSH 配置正確,您將能夠從終端對話使用 ssh 和 scp 命令,而無需提供口令或口令短語。
[grid@racnode1 ~]$ ssh racnode1 date
Fri Nov 13 09:46:56 EST 2009
racnode1

[grid@racnode1 ~]$ ssh racnode2 date
Fri Nov 13 09:47:34 EST 2009
racnode2

如果需要密碼的話,檢查grid資料夾的許可權,兩邊節點目標的許可權需要一致,許可權太大(比如是777)則需把許可權改小(如755)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-684198/,如需轉載,請註明出處,否則將追究法律責任。

相關文章