如何在Windows上建立ssh服務器
作者:許騰
日期:2010/9/16
1. ssh簡介以及本例的應用場景
① ssh的簡介
SSH是一個用來替代TELNET、FTP以及R命令的工具包,主要是想解決口令在網上明文傳輸的問題。為了系統安全和用戶自身的權益,推廣SSH是必要的。 SSH是英文Secure Shell的簡寫形式。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止DNS欺騙和IP欺騙。
② 本例的應用場景
用戶在client(Linux)上通過ssh遠程執行server(Windows)上的命令,比如c:\test.bat
注:Linux版自帶ssh Server且默認啟動,具體設置方法請參見google。
2. ssh服務器的安裝(Windows)
ssh服務器軟件有許多中,我們這里使用的是免費的freeSSHd。
① 首先從官方站點下載軟件並安裝(http://www.freesshd.com/)
② 安裝完成后進入配置界面(Server Status),確認SSH server正在運行狀態
③ 進入Users界面,設定一個訪問的用戶賬戶(比如xut)
這里我們建立一個叫xut的用戶,認證有3種方式可以選擇。從以后通過ssh運行命令的方便(無需輸入密碼)考慮,我們選擇Public key認證方式。選擇Password方式的話,每次訪問需要輸入密碼,此種方式較為繁瑣而且安全性不高。然后開放其Shell權限。
④ 進入認證界面,確認Public key認證方式屬於激活狀態(選擇Allowed或Required)
此時ssh服務器端的基本設置已經OK,可進一步進行更加詳細的設置(比如訪問限定等),此處不再介紹。
注意:服務器端如果有防護牆時應該開發TCP 22號端口最為ssh連接使用。
3. ssh客戶端的設置(Linux)
由於我們的客戶端采用的是Linux,所以不用安裝客戶端軟件,系統自帶的就有。
我們需要在Linux上創建一個共有和私有的密鑰對,私有密鑰放到客戶端(Linux)上,共有密鑰放到服務器端(Windows)上。在Linux上通過ssh-keygen命令來創建。
[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為共有的密鑰。
此時,需要把共有密鑰放到服務器端(Windows)進行保存,以便於服務器端進行安全檢查。
我們通過認證界面找到存放共有密鑰的地址(Public key folder)。
如上圖所示,然后在c:\Program Files\freeSSHd目錄下創建以登錄用戶名為名字的文本文件,此處舉例為xut文件。並將/root/.ssh/id_rsa.pub文件中的內容拷貝到c:\Program Files\freeSSHd\xut文件中。
至此,客戶端和服務器端的密鑰設置已經完成,可以通過如下命令進行遠程的命令執行。
ssh xut@172.28.xx.xxx "c:\test.bat"
這條命令將執行服務器端的C盤下的test.bat文件,並把結果返回,整個操作不需輸入密碼。
4. ssh客戶端的設置(Windows)
由於Windows不附帶ssh的客戶端和服務器端,我們這里找一個免費的客戶端軟件PuTTY。
PuttY主頁:http://www.chiark.greenend.org.uk/~sgtatham/putty/
各種客戶端的比較:http://en.wikipedia.org/wiki/Comparison_of_SSH_clients
在Putty主頁,我們下載putty.zip(含除了PuTTYtel以外的所有文件),然后解壓會發現一個叫plink.exe的文件,這就是我們的ssh客戶端命令行軟件。
我們首先要成一個共有和私有的密鑰對,使用putty.zip中附帶的PUTTYGEN.exe生成。
啟動PUTTYGEN.exe后可以見到下圖界面,點擊[Generate]即可生成所需密鑰對。
注意:由於是采用隨機算法生成,需要不停地在對話框上移動鼠標進度條才會增加,否則將保持不變。
鼠標在這里不停移動 |
密鑰生成完畢后,可以把私有密鑰進行保存,為了登錄簡單起見不對私鑰進行加密,提示沒有passphrase選擇忽略即可。假設我們這里把私鑰保存為pri_key.ppk。
我們把公鑰放在freeSSHd端(ssh服務器端)進行保存,具體保存方法參見【ssh客戶端的設置(Linux)】。
在Windows客戶端,執行如下命令進行ssh連接,並不需要輸入密碼即可通過密鑰進行自動認證。
plink -i pri_key.ppk xut@172.28.xx.xxx c:\test.bat
(此時將執行服務器端的c:\test.bat腳本。)
注:第一次連接時將出現“The server's host key is not cached in the registry… ”提示,我們選擇確定就可以了,以后就不會再出現了。
完。
感謝:jude_lau
來自百度文庫:http://wenku.baidu.com/view/fb9cef19227916888486d743.html