在集群節(jié)點(diǎn)上配置無(wú)口令的 SSH
要配置無(wú)口令的 SSH,必須先在每個(gè)集群節(jié)點(diǎn)上生成 RSA 或 DSA 密鑰,然后將所有集群節(jié)點(diǎn)成員上生成的所有密鑰復(fù)制到授權(quán)密鑰文件 中,該文件在每個(gè)節(jié)點(diǎn)上都是相同的。注意,SSH 文件必須只能由 root 用戶、軟件安裝用戶(grid、Oracle)讀取,因?yàn)槿绻渌脩艨梢栽L問(wèn)一個(gè)私鑰文件,則 SSH 會(huì)忽略該文件。以下示例中使用 DSA 密鑰。
-
對(duì)于安裝時(shí)要使用的 Oracle 軟件安裝所有者(grid、oracle),您必須為每個(gè)所有者分別配置無(wú)口令的 SSH。
要配置無(wú)口令的 SSH,完成以下任務(wù):
在每個(gè)節(jié)點(diǎn)上創(chuàng)建 SSH 目錄并生成 SSH 密鑰
在每個(gè)節(jié)點(diǎn)上完成以下步驟:
以軟件所有者身份(此例中為 grid 用戶)登錄。
[root@linuxidc1 ~]# su - grid
要確保您是以 grid 登錄的,并驗(yàn)證用戶 ID 與預(yù)期的用戶 ID(即您已為 grid 用戶分配的用戶 ID)一致,輸入 id 和 id grid 命令。確保 Oracle 用戶組和用戶與您當(dāng)前使用的用戶終端窗口進(jìn)程的組和用戶 ID 相同。例如:
如有必要,在 grid 用戶的主目錄下創(chuàng)建 .ssh 目錄并設(shè)置相應(yīng)權(quán)限,以確保僅 Oracle 用戶具有讀寫(xiě)權(quán)限:
[grid@linuxidc1 ~]$ mkdir ~/.ssh
[grid@linuxidc1 ~]$ chmod 700 ~/.ssh
輸入以下命令,為 SSH 協(xié)議生成 DSA 密鑰對(duì)(公共密鑰和私有密鑰):出現(xiàn)提示時(shí),接受默認(rèn)的密鑰文件位置和無(wú)口令短語(yǔ)設(shè)置(按 [Enter]):
[grid@linuxidc1 ~]$ /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:03grid@linuxidc1
注:Oracle Clusterware 11g 第 2 版及更高版本不支持使用口令短語(yǔ)的 SSH。Oracle 11g 第 2 版及更高版本必須使用無(wú)口令的 SSH。
此命令將 DSA 公共密鑰寫(xiě)入 ~/.ssh/id_dsa.pub 文件,將私有密鑰寫(xiě)入 ~/.ssh/id_dsa 文件。
絕不要將私鑰分發(fā)給任何無(wú)權(quán)執(zhí)行 Oracle 軟件安裝的用戶。
對(duì)您想使其成為集群成員的所有其他使用 DSA 密鑰的節(jié)點(diǎn) (linuxidc2) 重復(fù)第 1 步到第 4 步。
將所有密鑰添加到一個(gè)公共 authorized_keys 文件
現(xiàn)在,每個(gè) Oracle RAC 節(jié)點(diǎn)都包含用于 DSA 的公共和私有密鑰,您www.linuxidc.com需要在其中一個(gè)節(jié)點(diǎn)上創(chuàng)建一個(gè)授權(quán)密鑰文件 (authorized_keys)。授權(quán)密鑰文件只是一個(gè)包含每個(gè)用戶(每個(gè)節(jié)點(diǎn))的 DSA 公共密鑰的文件。在授權(quán)密鑰文件包含了所有公共密鑰后,將其分發(fā)至集群中的所有其他節(jié)點(diǎn)。
注:每個(gè)節(jié)點(diǎn)上 grid 用戶的 ~/.ssh/authorized_keys 文件必須包含您在所有集群節(jié)點(diǎn)上生成的所有 ~/.ssh/id_dsa.pub 文件中的內(nèi)容。
在集群中的一個(gè)節(jié)點(diǎn)上完成以下步驟以生成授權(quán)密鑰文件,然后分發(fā)該文件。對(duì)于此文而言,我將使用集群中的主節(jié)點(diǎn) linuxidc1:
從 linuxidc1(本地節(jié)點(diǎn))中確定所有者的主目錄 .ssh 中是否存在授權(quán)密鑰文件 ~/.ssh/authorized_keys。大多數(shù)情況下,該文件是不存在的,因?yàn)楸疚募僭O(shè)您正在進(jìn)行新的安裝。如果該文件不存在,那么現(xiàn)在進(jìn)行創(chuàng)建:
[grid@linuxidc1 ~]$ touch ~/.ssh/authorized_keys
[grid@linuxidc1 ~]$ 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 目錄中,您會(huì)看到前面生成的 id_dsa.pub 密鑰以及空白文件 authorized_keys。
在本地節(jié)點(diǎn) (linuxidc1) 上,使用 SCP(安全復(fù)制)或 SFTP(安全 FTP)將 ~/.ssh/id_dsa.pub 公共密鑰的內(nèi)容從集群中的兩個(gè) Oracle RAC 節(jié)點(diǎn)復(fù)制到剛才創(chuàng)建的授權(quán)密鑰文件 (~/.ssh/authorized_keys) 中。同樣,從 linuxidc1 進(jìn)行該操作。系統(tǒng)將提示您為每個(gè)訪問(wèn)的 Oracle RAC 節(jié)點(diǎn)輸入 grid OS 用戶帳戶口令。
以下示例是在 linuxidc1 節(jié)點(diǎn)上運(yùn)行的,假定集群有兩個(gè)節(jié)點(diǎn),分別是 linuxidc1 和 linuxidc2:
[grid@linuxidc1 ~]$ ssh linuxidc1 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'linuxidc1 (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 'linuxidc1,192.168.1.151' (RSA) to the list of known hosts.
grid@linuxidc1'spassword: xxxxx
[grid@linuxidc1 ~]$ ssh linuxidc2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'linuxidc2 (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 'linuxidc2,192.168.1.152' (RSA) to the list of known hosts.
grid@linuxidc2'spassword: xxxxx
第一次使用 SSH 從某個(gè)特定系統(tǒng)連接到節(jié)點(diǎn)時(shí),您會(huì)看到類似以下的消息:
The authenticity of host 'linuxidc1 (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 繼續(xù)。于是,會(huì)將公共主機(jī)名添加到 ~/.ssh 目錄下的 known_hosts 文件中,以后再?gòu)拇讼到y(tǒng)連接到相同節(jié)點(diǎn)時(shí)就不會(huì)看到此消息了。
此時(shí),linuxidc1 上的授權(quán)密鑰文件 (~/.ssh/authorized_keys) 中含有來(lái)自集群中各個(gè)節(jié)點(diǎn)的 DSA 公共密鑰。
[grid@linuxidc1 ~]$ 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
我們現(xiàn)在將其復(fù)制到集群中的其余節(jié)點(diǎn)。在我們的雙節(jié)點(diǎn)集群示例中,www.linuxidc.com唯一剩下的節(jié)點(diǎn)就是 linuxidc2。使用 scp 命令將授權(quán)密鑰文件復(fù)制到集群中的所有其余節(jié)點(diǎn):
[grid@linuxidc1 ~]$ scp ~/.ssh/authorized_keys linuxidc2:.ssh/authorized_keys
grid@linuxidc2'spassword: xxxxx
authorized_keys 100% 1206 1.2KB/s 00:00
通過(guò)登錄到節(jié)點(diǎn)并運(yùn)行以下命令,為集群中的兩個(gè) Oracle RAC 節(jié)點(diǎn)更改授權(quán)密鑰文件的權(quán)限:
[grid@linuxidc1 ~]$ chmod 600 ~/.ssh/authorized_keys
在集群節(jié)點(diǎn)上啟用 SSH 用戶等效性
將包含所有公共密鑰的 authorized_keys 文件復(fù)制到集群中的每個(gè)節(jié)點(diǎn)之后,完成本節(jié)中的各個(gè)步驟以確保正確配置了集群成員節(jié)點(diǎn)之間的無(wú)口令 SSH 連接。在本示例中,將使用名為 grid 的 Oracle Grid Infrastructure 軟件所有者。
當(dāng)您運(yùn)行本節(jié)中的測(cè)試 SSH 命令時(shí),如果看到除日期和主機(jī)名之外的任何其他消息或文本,則 Oracle 安裝將失敗。如果任一節(jié)點(diǎn)提示您輸入口令或口令短語(yǔ),則驗(yàn)證節(jié)點(diǎn)上的 ~/.ssh/authorized_keys 文件中包含了正確的公共密鑰并且您已創(chuàng)建了具有同樣組成員關(guān)系和 ID 的 Oracle 軟件所有者。進(jìn)行必要的更改,以確保您在輸入這些命令時(shí)只顯示日期和主機(jī)名。您應(yīng)當(dāng)確保對(duì)生成任何輸出或詢問(wèn)任何問(wèn)題的登錄腳本的任何部分進(jìn)行修改,以便它們僅當(dāng) shell 是交互式 shell 時(shí)才會(huì)生效。
在您希望運(yùn)行 OUI 的系統(tǒng) (linuxidc1) 上,以 grid 用戶身份登錄。
[root@linuxidc1 ~]# su - grid
如果 SSH 配置正確,您將能夠從終端對(duì)話使用 ssh 和 scp 命令,而無(wú)需提供口令或口令短語(yǔ)。
[grid@linuxidc1 ~]$ ssh linuxidc1 date
Fri Nov 13 09:46:56 EST 2009
linuxidc1
[grid@linuxidc1 ~]$ ssh linuxidc2 date
Fri Nov 13 09:47:34 EST 2009
linuxidc2
如果需要密碼的話,檢查grid文件夾的權(quán)限,兩邊節(jié)點(diǎn)目標(biāo)的權(quán)限需要一致,權(quán)限太大(比如是777)則需把權(quán)限改。ㄈ755) 本文出自:億恩科技【www.allwellnessguide.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|