孔祥真 徐小龍 邢宏健
曲阜師范大學(xué)計(jì)算機(jī)科學(xué)學(xué)院 山東 276826
最初SSH是由芬蘭的一家公司在1995年開(kāi)發(fā)的,目前SSH協(xié)議已經(jīng)經(jīng)歷了SSH 1和SSH 2兩個(gè)版本,它們使用了不同的協(xié)議來(lái)實(shí)現(xiàn),二者互不兼容。SSH 2不管在安全、功能上還是在性能上都比SSH 1有優(yōu)勢(shì),所以目前被廣泛使用的是 SSH2。但是因?yàn)槭馨鏅?quán)和加密算法的限制,后來(lái)很多系統(tǒng)都采用了OpenSSH。OpenSSH完全實(shí)現(xiàn)了SSH協(xié)議,而且開(kāi)放代碼,移植性好,因此很快流行起來(lái),自 2005年以來(lái)一直是SSH領(lǐng)域的主流軟件。
默認(rèn)情況下 Red Hat Enterprise Linux安裝程序會(huì)將OpenSSH服務(wù)和客戶程序安裝在系統(tǒng)上。可使用下面的命令檢查系統(tǒng)是否已經(jīng)安裝了 OpenSSH服務(wù)或查看已經(jīng)安裝了何種版本。rpm -q openssh-server如果系統(tǒng)還未安裝OpenSSH服務(wù),在Red Hat Enterprise Linux 5下安裝OpenSSH服務(wù)器可以有兩種方式,一種是源代碼方式安裝,一種是RPM軟件包方式安裝。源代碼可以從 http://download.chinaunix.net/ download/0008000/7713.shtml處下載,目前最新的版本是5.3p1版,文件名是openssh-5.3p1.tar.gz。RHEL 5自帶的OpenSSH版本是4.3p2版,文件名是openssh-server-4.3p2-16.el5,在發(fā)行版的第2張盤(pán)上?;?qū)惭b盤(pán)放入光驅(qū),加載光驅(qū)后在光盤(pán)的 Server目錄下找到 OpenSSH服務(wù)的 RPM安裝文件openssh-server-4.3p2-16.el5.i386.rpm,然后使用下面的命令安裝OpenSSH服務(wù)。rpm -ivh /mnt/Server/openssh-server-4.3p2-16. el5.i386.rpm,配置SSH服務(wù)的運(yùn)行參數(shù),是通過(guò)修改配置文件/etc/ssh/sshd_config實(shí)現(xiàn)的。
(1)啟動(dòng)SSH服務(wù)的命令
/etc/init.d/sshd start
(2)停止SSH服務(wù)的命令
/etc/init.d/sshd stop
(3)重新啟動(dòng)SSH服務(wù)的命令
/etc/init.d/sshd restart
(4)設(shè)置自動(dòng)運(yùn)行SSH服務(wù)
為了讓系統(tǒng)每次啟動(dòng)時(shí)自動(dòng)運(yùn)行SSH服務(wù),還可以將它設(shè)置為自啟動(dòng)。執(zhí)行“ntsysv”命令啟動(dòng)服務(wù)配置程序,在出現(xiàn)的對(duì)話框中找到“sshd”服務(wù),然后在其前面加上星號(hào)(*),選擇“確定”即可。
(1)基于Windows平臺(tái)
第一步:獲取PuTTY程序
Windows下有許多 SSH的客戶程序,推薦使用免費(fèi)的PuTTY程序 。下載地址http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
第二步:連接SSH服務(wù)器
運(yùn)行下載的 putty.exe文件,在 PuTTY程序主界面的“Host Name”中輸入服務(wù)器的IP地址或域名,在“Protocol”中選擇“SSH”選項(xiàng),然后單擊“Open”按鈕連接。
如果是第一次連接到某臺(tái)服務(wù)器,由于服務(wù)器公鑰還沒(méi)有在注冊(cè)表中緩存,PuTTY程序會(huì)出現(xiàn)警告信息并顯示服務(wù)器的指紋信息。
第三步:在遠(yuǎn)程系統(tǒng)上工作
如果PuTTY成功地連接到SSH服務(wù)器,就會(huì)顯示登錄信息并提示用戶輸入用戶名和口令。如果用戶名和口令輸入正確,就能成功登錄并在遠(yuǎn)程系統(tǒng)上工作了。
(2)基于Linux平臺(tái)
在 Linux平臺(tái)下可以使用 OpenSSH 的客戶程序openssh-clients來(lái)連接SSH服務(wù)器。Red Hat Enterprise Linux默認(rèn)已經(jīng)安裝SSH客戶程序,可使用下面命令檢查系統(tǒng)是否已經(jīng)安裝了SSH客戶程序或查看已經(jīng)安裝了何種版本。rpm -q openssh-clients,如果系統(tǒng)還未安裝SSH客戶程序,可將Red Hat Enterprise Linux 5第一張安裝盤(pán)放入光驅(qū),加載光驅(qū)后在光盤(pán)的Server目錄下找到SSH客戶程序的RPM安裝包文件 openssh-clients-4.3p2-16.el5.i386.rpm,然后使用下面的命令安裝SSH客戶程序。rpm-ivh /mnt/Server/openssh-clients-4.3p2-16.el5.i386.rpm 安裝好openssh-clients程序后,可以直接使用ssh命令登錄到SSH服務(wù)器。命令的格式為:ssh 服務(wù)器的IP地址或域名。
首先由用戶生成一對(duì)密鑰,然后將公鑰保存在SSH服務(wù)器用戶主目錄下.ssh子目錄中的 authorized_keys文件里(如/root/.ssh/authorized_keys),私鑰保存在本地計(jì)算機(jī)中。當(dāng)用戶登錄時(shí),服務(wù)器檢查authorized_keys文件的公鑰是否與用戶的私鑰對(duì)應(yīng)。如果相符則允許用戶登錄,否則拒絕用戶的登錄請(qǐng)求。編輯文件/etc/ssh/sshd_config,找到語(yǔ)句“Password Authentication yes”,并將語(yǔ)句改為“PasswordAuthentication no”。
1.4.1 在putty中啟用公鑰認(rèn)證
第一步:獲取 PuTTYgen程序。到 http://www.chiark. greenend.org.uk/~sgtatham/putty/download.html下載產(chǎn)生密鑰的程序 Puttygen.exe,運(yùn)行下載的 Puttygen.exe文件,在PuTTYgen程序主界面中的“Type of key generate:”,選擇加密的算法,在“Number of bits in a generated key:”中輸入加密的位數(shù),推薦使用默認(rèn)的1024位SSH2 RSA加密,然后單擊“Generate”按鈕開(kāi)始生成密鑰。
第二步:在密鑰產(chǎn)生的過(guò)程中,為了生成一些隨機(jī)的數(shù)據(jù),應(yīng)在程序的窗口內(nèi)隨意移動(dòng)鼠標(biāo)(否則程序進(jìn)度條不會(huì)改變)。密鑰生成后,出于安全性的考慮,程序會(huì)提示輸入保護(hù)私鑰的口令短語(yǔ)Key passphrase。
第三步:保存密鑰??诹疃陶Z(yǔ)用于保護(hù)私鑰。如果入侵者竊取了私鑰但沒(méi)有口令短語(yǔ)也不能使用該私鑰,如果不想使用口令短語(yǔ)保護(hù),只需將該項(xiàng)留空即可,最后分別單擊“Save public key”和“Save private key”按鈕將公鑰和私鑰保存成文件。本例將保存公鑰的文件名為 linden.pub,保存私鑰的文件名為linden.ppk。
第四步:傳輸公鑰文件到SSH服務(wù)器。為了讓SSH服務(wù)器能讀取公鑰文件,還要將公鑰文件傳輸?shù)絊SH服務(wù)器的用戶主目錄下的.ssh子目錄中(如果沒(méi)有.ssh目錄,可手動(dòng)建立),因?yàn)楣€文件可以公開(kāi)給所有用戶,傳輸公鑰文件時(shí)不必考慮安全問(wèn)題,可以使用FTP、電子郵件或軟盤(pán)拷貝的方法。
第五步:轉(zhuǎn)換公鑰文件格式由于puttygen產(chǎn)生的公鑰文件格式與 OpenSSH程序使用的格式不兼容,因此還要在Linux中使用openssh軟件包自帶的ssh-keygen程序?qū)ζ溥M(jìn)行轉(zhuǎn)換。應(yīng)輸入如下命令進(jìn)行轉(zhuǎn)換:ssh-keygen -i -f /root/.ssh/ linden.pub>/root/.ssh/authorized_keys
第六步:連接SSH服務(wù)器
(1)運(yùn)行PuTTY程序,在“Host Name”中輸入服務(wù)器的IP地址或域名(如192.168.16.100)。
(2)選擇對(duì)話框左邊的“Category”窗口的“Connection”→“SSH”→“Auth”。
(3)在“Private key file for authentication”輸入框中輸入私鑰文件的路徑,然后單擊“Open”按鈕連接。
(4)PuTTY成功地連接到SSH服務(wù)器后,服務(wù)器會(huì)提示輸入登錄用戶名。如果使用了保護(hù)私鑰的口令短語(yǔ),則還會(huì)提示輸入口令短語(yǔ)。在登錄過(guò)程中,不需要輸入用戶的口令。
1.4.2 在openssh-client中啟用公鑰認(rèn)證
(1)產(chǎn)生密鑰:可以使用 openssh軟件包自帶的ssh-keygen程序產(chǎn)生密鑰,如執(zhí)行以下命令:ssh-keygen -t rsa。
(2)傳輸公鑰文件到SSH服務(wù)器:為了讓SSH服務(wù)器能讀取公鑰文件,還要將產(chǎn)生的公鑰文件id_rsa.pub傳輸?shù)絊SH服務(wù)器的用戶主目錄下的.ssh子目錄中(如果沒(méi)有.ssh目錄,可手動(dòng)建立),并改名為authorized_keys。
(3)連接SSH服務(wù)器:現(xiàn)在可以直接使用ssh命令登錄到SSH服務(wù)器。
使用 OpenSSH工具將增進(jìn)系統(tǒng)安全性,所有使用OpenSSH工具的通訊,包括口令,都會(huì)被加密。telnet和ftp使用純文本口令,并被明文發(fā)送。這些信息可能會(huì)被截取,口令可能會(huì)被檢索,然后未經(jīng)授權(quán)的人員可能會(huì)使用截取的口令登錄進(jìn)你的系統(tǒng)而對(duì)你的系統(tǒng)造成危害。所以應(yīng)該盡可能地使用OpenSSH的工具集合來(lái)避免這些安全問(wèn)題。
[1]孫永道,邵慧瑩.Linux實(shí)用技能教程[M].北京:機(jī)械工業(yè)出版社.2008.
[2]文東戈,孫昌立,王旭.Linux操作系統(tǒng)實(shí)用教程[M].北京:清華大學(xué)出版社.2010.
[3]陳博.孫宏彬於岳.Linux 實(shí)用教程[M].北京:人民郵電出版社.2008.