本發(fā)明涉及計(jì)算機(jī)信息安全的技術(shù)領(lǐng)域,特別涉及一種自動配置ssh無密碼訪問的方法及系統(tǒng)。
背景技術(shù):
在計(jì)算機(jī)信息安全的技術(shù)領(lǐng)域中,ssh即Secure Shell(安全Shell),是一種通用的、功能強(qiáng)大的、基于軟件的網(wǎng)絡(luò)安全解決方案,ssh是Unix系統(tǒng)中r系命令的一個安全的替代工具,它使得遠(yuǎn)程訪問的身份識別和鑒定的對稱和非對稱加密變得簡單,改善了服務(wù)器端的inetd提供的功能,計(jì)算機(jī)每次想網(wǎng)絡(luò)發(fā)送數(shù)據(jù)時(shí),ssh都會自動對其進(jìn)行加密,數(shù)據(jù)到達(dá)目的地時(shí),ssh自動對加密數(shù)據(jù)進(jìn)行解密,整個過程都是透明的,目前,Unix、Linux、FreeBSD系統(tǒng)都支持ssh。
然而,在現(xiàn)有技術(shù)中,運(yùn)行程序時(shí)訪問ssh通常是要輸入密碼進(jìn)行訪問的,或者開發(fā)者需要通過手動使用命令配置無密碼訪問,導(dǎo)致ssh的訪問變得復(fù)雜化,假如是無開發(fā)經(jīng)驗(yàn)的普通用戶想訪問ssh時(shí)則需要不斷地輸入密碼。
技術(shù)實(shí)現(xiàn)要素:
基于現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出了一種自動配置ssh無密碼訪問的方法及系統(tǒng),使用Linux bash語言編寫測試程序來實(shí)現(xiàn),解決了服務(wù)器間ssh登錄是繁瑣的密碼輸入問題,同時(shí)登錄命令中,用被訪問節(jié)點(diǎn)的hostname來代替IP,可以在不用記憶IP的情況下訪問節(jié)點(diǎn),便于管理和使用。
一種自動配置ssh無密碼訪問的方法,其特征在于:使用ssh-keygen生成公鑰,將所述公鑰拷貝到從節(jié)點(diǎn).ssh/目錄下,配置hostfile文件;運(yùn)行ssh主腳本,對所有要配置的節(jié)點(diǎn)做ping操作,確保網(wǎng)絡(luò)互通;在所述ssh主腳本中調(diào)用第一子腳本,生成私鑰,并將所述公鑰的內(nèi)容寫入authorized_keys文件中,并賦予執(zhí)行權(quán)限,在所述ssh主腳本中調(diào)用第二子腳本以及第三腳本,當(dāng)提示需要輸入密碼時(shí)自動輸入密碼。
其中,所述配置hostfile文件具體為,將服務(wù)器集群中所有要配置節(jié)點(diǎn)的主機(jī)名添加到所述hostfile文件中。
其中,在所述ssh主腳本中調(diào)用第二、三子腳本時(shí),將需要輸入的密碼傳遞給第第二、三子腳本。
其中,所述網(wǎng)絡(luò)節(jié)點(diǎn)IP在同一網(wǎng)段。
其中,所述腳本由Linux bash語言編寫。
一種自動配置ssh無密碼訪問的系統(tǒng),其特征在于:包括配置模塊,用于使用ssh-keygen生成公鑰,將所述公鑰拷貝到從節(jié)點(diǎn).ssh/目錄下,配置hostfile文件;腳本運(yùn)行模塊,用于運(yùn)行ssh主腳本,對所有要配置的節(jié)點(diǎn)做ping操作,確保網(wǎng)絡(luò)互通;腳本調(diào)用模塊,用于在所述ssh主腳本中調(diào)用第一子腳本,生成私鑰,并將所述公鑰的內(nèi)容寫入authorized_keys文件中,并賦予執(zhí)行權(quán)限,在所述ssh主腳本中調(diào)用第二子腳本以及第三腳本,當(dāng)提示需要輸入密碼時(shí)自動輸入密碼。
其中,所述配置hostfile文件具體為,將服務(wù)器集群中所有要配置節(jié)點(diǎn)的主機(jī)名添加到所述hostfile文件中。
其中,在所述ssh主腳本中調(diào)用第二、三子腳本時(shí),將需要輸入的密碼傳遞給第第二、三子腳本。
其中,所述網(wǎng)絡(luò)節(jié)點(diǎn)IP在同一網(wǎng)段。
其中,所述腳本由Linux bash語言編寫。
由以上可知,本發(fā)明公開了一種自動配置ssh無密碼訪問的方法及系統(tǒng),由Linux bash語言編寫測試程序,解決了ssh無密碼訪問配置的技術(shù)問題,實(shí)現(xiàn)了服務(wù)器集群系統(tǒng)在系統(tǒng)測試或運(yùn)維測試中對多節(jié)點(diǎn)的無密碼訪問批量操作,無需記憶和輸入每臺服務(wù)器的密碼,提高了遠(yuǎn)程操作效率。
附圖說明
圖1是本發(fā)明的方法流程圖;
圖2是本發(fā)明的系統(tǒng)框圖。
具體實(shí)施例
如下闡述了具體的實(shí)施方案:
本發(fā)明提供了一種自動配置ssh無密碼訪問的方法,方法流程如附圖1所示。
步驟101,使用ssh-keygen生成公鑰,將所述公鑰拷貝到從節(jié)點(diǎn).ssh/目錄下,配置hostfile文件;
其中,配置hostfile文件,則是將服務(wù)器集群中所有要配置節(jié)點(diǎn)的主機(jī)名hostname添加到hostfile文件中,以16個節(jié)點(diǎn)為例,hostname分別是m01到m16。
步驟102,運(yùn)行ssh主腳本,對所有要配置的節(jié)點(diǎn)做ping操作,確保網(wǎng)絡(luò)互通。
ssh主腳本為ssh.sh,偽代碼為:
for i in`cat hostfile`;do ping$i-c 1;done
./step1.exp
#執(zhí)行step1.exp腳本
./step2.exp 111111
#執(zhí)行step2.exp腳本
./step3.exp 111111
#執(zhí)行step3.exp腳本。
步驟103,在所述ssh主腳本中調(diào)用第一子腳本,生成私鑰,并將所述公鑰的內(nèi)容寫入authorized_keys文件中,并賦予執(zhí)行權(quán)限,在所述ssh主腳本中調(diào)用第二子腳本以及第三腳本,當(dāng)提示需要輸入密碼時(shí)自動輸入密碼。
如上述ssh.sh偽代碼,在主腳本ssh.sh中調(diào)用第一子腳本step1.exp,生成私鑰,并將所述公鑰的內(nèi)容寫入authorized_keys文件中,并賦予執(zhí)行權(quán)限,step1.exp子腳本的偽代碼為:
然后調(diào)用第二子腳本step2.exp以及第三子腳本step3.exp,當(dāng)提示需要輸入密碼時(shí)自動輸入密碼,第二子腳本step2.exp以及第三子腳本step3.exp的偽代碼為:
第二子腳本step2.exp:
第三子腳本step3.exp:
本發(fā)明還提供了一種自動配置ssh無密碼訪問的系統(tǒng),系統(tǒng)功能結(jié)構(gòu)圖如附圖2所示。
所述系統(tǒng)包括:配置模塊201,用于使用ssh-keygen生成公鑰,將所述公鑰拷貝到從節(jié)點(diǎn).ssh/目錄下,配置hostfile文件;
其中,配置hostfile文件,則是將服務(wù)器集群中所有要配置節(jié)點(diǎn)的主機(jī)名hostname添加到hostfile文件中,以16個節(jié)點(diǎn)為例,hostname分別是m01到m16。
腳本運(yùn)行模塊202,用于運(yùn)行ssh主腳本,對所有要配置的節(jié)點(diǎn)做ping操作,確保網(wǎng)絡(luò)互通。
ssh主腳本為ssh.sh,偽代碼為:
for i in`cat hostfile`;do ping$i-c 1;done
./step1.exp
#執(zhí)行step1.exp腳本
./step2.exp 111111
#執(zhí)行step2.exp腳本
./step3.exp 111111
#執(zhí)行step3.exp腳本。
腳本調(diào)用模塊203,用于在所述ssh主腳本中調(diào)用第一子腳本,生成私鑰,并將所述公鑰的內(nèi)容寫入authorized_keys文件中,并賦予執(zhí)行權(quán)限,在所述ssh主腳本中調(diào)用第二子腳本以及第三腳本,當(dāng)提示需要輸入密碼時(shí)自動輸入密碼。
如上述ssh.sh偽代碼,在主腳本ssh.sh中調(diào)用第一子腳本step1.exp,生成私鑰,并將所述公鑰的內(nèi)容寫入authorized_keys文件中,并賦予執(zhí)行權(quán)限,step1.exp子腳本的偽代碼為:
然后調(diào)用第二子腳本step2.exp以及第三子腳本step3.exp,當(dāng)提示需要輸入密碼時(shí)自動輸入密碼,第二子腳本step2.exp以及第三子腳本step3.exp的偽代碼為:
第二子腳本step2.exp:
第三子腳本step3.exp:
本發(fā)明的一種自動配置ssh無密碼訪問的方法及系統(tǒng),是由Linux bash語言編寫測試程序,解決了ssh無密碼訪問配置的技術(shù)問題,實(shí)現(xiàn)了服務(wù)器集群系統(tǒng)在系統(tǒng)測試或運(yùn)維測試中對多節(jié)點(diǎn)的無密碼訪問批量操作,提高了遠(yuǎn)程操作效率,同時(shí),無需記憶和輸入每臺服務(wù)器的密碼,給用戶以良好的用戶體驗(yàn)。
對所公開的實(shí)施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域技術(shù)人員來說將是顯而易見的,本發(fā)明中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。