需求:公司通過一托管服務(wù)器(www.example.com)向外發(fā)布信息,要求使用openssh來提高從公司本地管理工作站(admin.example.com)遠(yuǎn)程管理該服務(wù)器時(shí)的安全性。
一、 運(yùn)行環(huán)境:
1.操作系統(tǒng):
本地管理工作站和遠(yuǎn)程服務(wù)器均使用RedHat7.0。
2.openssh版本:
采用RedHat7.0自帶的openssh,主要有三個(gè)rpm包:
openssh-2.1.p4-1.rpm:包含openssh的核心文件
openssh-server-2.1.1p4-1.rpm:包含openssh的服務(wù)器程序
openssh-clients-2.1.1p4-1.rpm:包含openssh的客戶端程序
二、 安裝openssh
1.在本地管理工作站上安裝openssh客戶端
首先查看是否已經(jīng)安裝了openssh
#rpm –qa |grep openssh
如果提示:
openssh-2.1.p4-1
openssh-clients-2.1.1p4-1
則說明已經(jīng)安裝了openssh的客戶端軟件,如果沒有提示,則插入Redhat7.0的第一張安裝盤,并執(zhí)行:
#mount /mnt/cdrom
#cd /mnt/cdrom/RedHat/RPMS
#rpm –ivh openssh-2.1.p4-1.rpm
#rpm –ivh openssh-clients-2.1.1p4-1.rpm
2.在遠(yuǎn)程服務(wù)器上安裝openssh
方法同上,只不過服務(wù)器上需要安裝的是以下兩個(gè)包
openssh-2.1.p4-1
openssh-server-2.1.1p4-1
提示:可以通過ftp將openssh的rpm包下載到遠(yuǎn)程服務(wù)器上。
三、 使用基于傳統(tǒng)口令認(rèn)證的openssh
說明:缺省情況下,ssh仍然使用傳統(tǒng)的口令驗(yàn)證,在使用這種認(rèn)證方式時(shí),我們不需
要進(jìn)行任何配置。你可以使用自己帳號(hào)和口令登錄到遠(yuǎn)程主機(jī)。所有傳輸?shù)臄?shù)據(jù)都會(huì)被加密,但是不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器。可能會(huì)有別的服務(wù)器在冒充真正的服務(wù)器,也就是受到“中間人”這種方式的攻擊。
使用以下語(yǔ)法登錄服務(wù)器:
ssh –l [在遠(yuǎn)程服務(wù)器上的帳號(hào)] [遠(yuǎn)程服務(wù)器的主機(jī)名或ip地址]
假設(shè)我們?cè)谶h(yuǎn)程服務(wù)器上有管理員帳號(hào)admin,我們執(zhí)行以下命令:
ssh –l admin www.example.com
一切正常的話,你可以看到以下信息:
The authenticity of host ‘www.example.com’ can't be established.
Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.
Are you sure you want to continue connecting (yes/no)?
因?yàn)槟闶堑谝淮蔚卿浄?wù)器,所以openssh不知道你的主機(jī)信息,以后再登錄時(shí),系統(tǒng)就不會(huì)再提示這樣的信息了。輸入yes并回車后系統(tǒng)會(huì)提示你輸入密碼,輸入密碼后,你就可以象平常使用telnet那樣來使用ssh了。
四、 配置并使用基于密匙認(rèn)證的openssh
說明:密匙認(rèn)證需要依靠密匙,首先創(chuàng)建一對(duì)密匙(包括公匙和密匙,并且用公匙加密的數(shù)據(jù)只能用密匙解密),并把公匙放到需要遠(yuǎn)程服務(wù)器上。這樣當(dāng)?shù)卿涍h(yuǎn)程服務(wù)器時(shí),客戶端軟件就會(huì)向服務(wù)器發(fā)出請(qǐng)求,請(qǐng)求用你的密匙進(jìn)行認(rèn)證。服務(wù)器收到請(qǐng)求之后,先在你在該服務(wù)器的宿主目錄下尋找你的公匙,然后檢查該公匙是否是合法,如果合法就用公匙加密一隨機(jī)數(shù)(即所謂的challenge)并發(fā)送給客戶端軟件。客戶端軟件收到“challenge”之后就用私匙解密再把它發(fā)送給服務(wù)器。因?yàn)橛霉准用艿臄?shù)據(jù)只能用密匙解密,服務(wù)器經(jīng)過比較就可以知道該客戶連接的合法性。
下面我們就一步步的來配置基于密匙認(rèn)證的oppenssh(基于ssh2):
假定:我們?cè)谶h(yuǎn)程服務(wù)器和本地管理工作站上均有一個(gè)管理員帳號(hào):admin
1.配置遠(yuǎn)程服務(wù)器:
安裝完成后一般說來我們就沒有必要修改服務(wù)端的配置文件了,但是如果你想要獲得最
大化的安全性,可以修改www.example.com上/etc/ssh/sshd_conf中的
PasswordAuthentication yes 改為
PasswordAuthentication no
也即只能使用密匙認(rèn)證的openssh,禁止使用口令認(rèn)證。
2. 配置客戶端:
對(duì)客戶端配置文件/etc/ssh/ssh_conf不需要進(jìn)行任何更改。
3.在客戶端生成密匙:
先在管理工作站上用ssh-keygen生成密匙,因?yàn)槲覀兪褂玫氖莝sh2,所以要加一個(gè)-d
的參數(shù)。用admin登錄管理工作站,然后執(zhí)行:
$ssh-keygen –d
系統(tǒng)將顯示:
Generating DSA parameter and key.
Enter file in which to save the key (/home/admin/.ssh/id_dsa):
叫你輸入密匙文件的保存路徑,我們回車使用缺省路徑。
如果還沒有/home/admin/.ssh目錄,系統(tǒng)將顯示:
Created directory ‘/home/admin/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase:
Your identification has been saved in /home/admin/.ssh/id_dsa.
Your public key has been saved in /home/admin/.ssh/id_dsa.pub.
The key fingerprint is:
D8:20:0f:01:5d:8f:6f:de:b9:d5:ce:28:d8:ca:45:59 admin@admin.example.com
這里的密碼是對(duì)生成的私匙文件(/home/admin/.ssh/id_dsa)的保護(hù)口令。
公匙文件是/home/admin/.ssh/id_dsa.pub
4. 發(fā)布公匙:
通過ftp將公匙文件/home/admin/.ssh/id_dsa.pub復(fù)制到遠(yuǎn)程服務(wù)器上的以下目錄:
/home/admin/.ssh,如果.ssh目錄不存在,可以用mkdir命令先建立。
然后,將id_dsa.pub重命名為authorized_keys2:
mv id_dsa.pub authorized_keys2
再用chmod修改authorized_keys2的屬性:
chmod 644 authorized_keys2
注意,如果authorized_keys2文件的權(quán)限不正確,會(huì)導(dǎo)致ssh連接失敗。
5. 啟動(dòng)sshd服務(wù):
在www.example.com上使用root權(quán)限執(zhí)行:
/etc/rc.d/init.d/sshd start
6. 連接遠(yuǎn)程服務(wù)器:
用admin帳號(hào)登錄admin.example.com并使用ssh連接www.example.com:
ssh –l admin www.example.com
Enter passphrase for DSA key ‘/home/admin/.ssh/id_dsa’:
輸入原先設(shè)置的密碼后,就可以登錄到www.example.com了。


