配置 RAC 節點以便可以使用 SSH 進行遠端訪問

fjzcau發表於2015-01-24
--在每個節點上建立 SSH 目錄並生成 SSH 金鑰

1)以軟體所有者身份(此例中為 grid 使用者)登入。
[root@racnode1 ~]# su - grid                                  

2)要確保您是以 grid 登入的,並驗證使用者 ID 與預期的使用者 ID(即您已為grid 使用者分配的使用者 ID)一致,輸入 id 和 id grid 命令。確保 Oracle 使用者組和使用者與您當前使用的使用者終端視窗程式的組和使用者 ID 相同。例如:
[grid@racnode1 ~]$ id
uid=1100(grid) gid=1000(oinstall) groups=1000(oinstall),1200(asmadmin),1201(asmdba),1202(asmoper) 
[grid@racnode1 ~]$ id grid
uid=1100(grid) gid=1000(oinstall) groups=1000(oinstall),1200(asmadmin),1201(asmdba),1202(asmoper)                                  

3)如有必要,在 grid 使用者的主目錄下建立.ssh 目錄並設定相應許可權,以確保僅 oracle 使用者具有讀寫許可權:
mkdir ~/.ssh

chmod 700 ~/.ssh                                  

注:如果許可權未設定為 700,SSH 配置將失敗。

4)輸入以下命令,為 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 grid@racnode1                                  
注:Oracle Clusterware 11g 第 2 版及更高版本不支援使用口令短語的 SSH。Oracle 11g 第 2 版及更高版本必須使用無口令的 SSH。

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

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

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

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

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

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

從 rac1(本地節點)中確定所有者的主目錄 .ssh 中是否存在授權金鑰檔案 ~/.ssh/authorized_keys。
大多數情況下,該檔案是不存在的,因為本文假設您正在進行新的安裝。如果該檔案不存在,那麼現在進行建立:
touch ~/.ssh/authorized_keys
ls -l ~/.ssh

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

[grid@rac1 ~]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

[grid@rac1 ~]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

此時,rac1 上的授權金鑰檔案 (~/.ssh/authorized_keys) 中含有來自叢集中各個節點的 DSA 公共金鑰。
[grid@rac1 ~]$ ls -l ~/.ssh

使用 scp 命令將授權金鑰檔案複製到叢集中的所有其餘節點:
[grid@rac1:/home/grid]$ scp ~/.ssh/authorized_keys rac2:.ssh/authorized_keys
grid@rac2's password:
authorized_keys                                           100% 1198     1.2KB/s   00:00


透過登入到節點並執行以下命令,為叢集中的兩個 Oracle RAC 節點更改授權金鑰檔案的許可權:
[grid@rac1 ~]$ chmod 600 ~/.ssh/authorized_keys 

--
在叢集節點上啟用 SSH 使用者等效性

在您希望執行 OUI 的系統 (rac1) 上,以 grid 使用者身份登入。
[root@rac1 ~]# su - grid                                  
如果 SSH 配置正確,您將能夠從終端對話使用 ssh 和 scp 命令,而無需提供口令或口令短語。
[grid@rac1:/home/grid]$ ssh rac1 "date;hostname"
2012年 12月 31日 星期一 12:40:12 CST
rac1
[grid@rac1:/home/grid]$ ssh rac2 "date;hostname" 
2012年 12月 31日 星期一 12:40:16 CST
rac2
                               
在 Oracle RAC 叢集中的其餘節點 (racnode2) 上執行相同的操作,以確保這些節點同樣可以訪問所有其他節點而無需提供口令或口令短語,
並且這些節點新增到了 known_hosts 檔案中:

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

相關文章