如何在Windows上建立ssh服務(wù)器
作者:許騰
日期:2010/9/16
① ssh的簡(jiǎn)介
SSH是一個(gè)用來替代TELNET、FTP以及R命令的工具包,主要是想解決口令在網(wǎng)上明文傳輸?shù)膯栴}。為了系統(tǒng)安全和用戶自身的權(quán)益,推廣SSH是必要的。 SSH是英文Secure Shell的簡(jiǎn)寫形式。通過使用SSH,你可以把所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,這樣"中間人"這種攻擊方式就不可能實(shí)現(xiàn)了,而且也能夠防止DNS欺騙和IP欺騙。
② 本例的應(yīng)用場(chǎng)景
用戶在client(Linux)上通過ssh遠(yuǎn)程執(zhí)行server(Windows)上的命令,比如c:\test.bat
注:Linux版自帶ssh Server且默認(rèn)啟動(dòng),具體設(shè)置方法請(qǐng)參見google。
ssh服務(wù)器軟件有許多中,我們這里使用的是免費(fèi)的freeSSHd。
① 首先從官方站點(diǎn)下載軟件并安裝(http://www.freesshd.com/)
② 安裝完成后進(jìn)入配置界面(Server Status),確認(rèn)SSH server正在運(yùn)行狀態(tài)
③ 進(jìn)入Users界面,設(shè)定一個(gè)訪問的用戶賬戶(比如xut)
這里我們建立一個(gè)叫xut的用戶,認(rèn)證有3種方式可以選擇。從以后通過ssh運(yùn)行命令的方便(無需輸入密碼)考慮,我們選擇Public key認(rèn)證方式。選擇Password方式的話,每次訪問需要輸入密碼,此種方式較為繁瑣而且安全性不高。然后開放其Shell權(quán)限。
④ 進(jìn)入認(rèn)證界面,確認(rèn)Public key認(rèn)證方式屬于激活狀態(tài)(選擇Allowed或Required)
此時(shí)ssh服務(wù)器端的基本設(shè)置已經(jīng)OK,可進(jìn)一步進(jìn)行更加詳細(xì)的設(shè)置(比如訪問限定等),此處不再介紹。
注意:服務(wù)器端如果有防護(hù)墻時(shí)應(yīng)該開發(fā)TCP 22號(hào)端口最為ssh連接使用。
由于我們的客戶端采用的是Linux,所以不用安裝客戶端軟件,系統(tǒng)自帶的就有。
我們需要在Linux上創(chuàng)建一個(gè)共有和私有的密鑰對(duì),私有密鑰放到客戶端(Linux)上,共有密鑰放到服務(wù)器端(Windows)上。在Linux上通過ssh-keygen命令來創(chuàng)建。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [直接回車]
Enter passphrase (empty for no passphrase): [直接回車]
Enter same passphrase again: [直接回車]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53
其中,/root/.ssh/id_rsa為私有密鑰,/root/.ssh/id_rsa.pub為共有的密鑰。
此時(shí),需要把共有密鑰放到服務(wù)器端(Windows)進(jìn)行保存,以便于服務(wù)器端進(jìn)行安全檢查。
我們通過認(rèn)證界面找到存放共有密鑰的地址(Public key folder)。
如上圖所示,然后在c:\Program Files\freeSSHd目錄下創(chuàng)建以登錄用戶名為名字的文本文件,此處舉例為xut文件。并將/root/.ssh/id_rsa.pub文件中的內(nèi)容拷貝到c:\Program Files\freeSSHd\xut文件中。
至此,客戶端和服務(wù)器端的密鑰設(shè)置已經(jīng)完成,可以通過如下命令進(jìn)行遠(yuǎn)程的命令執(zhí)行。
ssh xut@172.28.xx.xxx "c:\test.bat"
這條命令將執(zhí)行服務(wù)器端的C盤下的test.bat文件,并把結(jié)果返回,整個(gè)操作不需輸入密碼。
由于Windows不附帶ssh的客戶端和服務(wù)器端,我們這里找一個(gè)免費(fèi)的客戶端軟件PuTTY。
PuttY主頁:http://www.chiark.greenend.org.uk/~sgtatham/putty/
各種客戶端的比較:http://en.wikipedia.org/wiki/Comparison_of_SSH_clients
在Putty主頁,我們下載putty.zip(含除了PuTTYtel以外的所有文件),然后解壓會(huì)發(fā)現(xiàn)一個(gè)叫plink.exe的文件,這就是我們的ssh客戶端命令行軟件。
我們首先要成一個(gè)共有和私有的密鑰對(duì),使用putty.zip中附帶的PUTTYGEN.exe生成。
啟動(dòng)PUTTYGEN.exe后可以見到下圖界面,點(diǎn)擊[Generate]即可生成所需密鑰對(duì)。
注意:由于是采用隨機(jī)算法生成,需要不停地在對(duì)話框上移動(dòng)鼠標(biāo)進(jìn)度條才會(huì)增加,否則將保持不變。
鼠標(biāo)在這里不停移動(dòng) |
密鑰生成完畢后,可以把私有密鑰進(jìn)行保存,為了登錄簡(jiǎn)單起見不對(duì)私鑰進(jìn)行加密,提示沒有passphrase選擇忽略即可。假設(shè)我們這里把私鑰保存為pri_key.ppk。
我們把公鑰放在freeSSHd端(ssh服務(wù)器端)進(jìn)行保存,具體保存方法參見【ssh客戶端的設(shè)置(Linux)】。
在Windows客戶端,執(zhí)行如下命令進(jìn)行ssh連接,并不需要輸入密碼即可通過密鑰進(jìn)行自動(dòng)認(rèn)證。
plink -i pri_key.ppk xut@172.28.xx.xxx c:\test.bat
(此時(shí)將執(zhí)行服務(wù)器端的c:\test.bat腳本。)
注:第一次連接時(shí)將出現(xiàn)“The server's host key is not cached in the registry… ”提示,我們選擇確定就可以了,以后就不會(huì)再出現(xiàn)了。
聯(lián)系客服