Windows上SSH服務器的配置以及客戶端的連接


如何在Windows上建立ssh服務器

作者:許騰

日期:2010/9/16

1.      ssh簡介以及本例的應用場景

       ssh的簡介

SSH是一個用來替代TELNETFTP以及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認證方式屬於激活狀態(選擇AllowedRequired

 

此時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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM