在windows下使用OpenSSH(上)

SSH與OpenSSH

傳統的網絡服務程序,如 :ftp、pop和telnet在本質上都是不安全的,由於它們在網絡上用明文傳送口令和數據,別有用心的人很是容易就能夠截獲這些口令和數據。並且,這些服務程序的安全驗證方式也是有其弱點的,就是很容易受到「中間人」(man-in-the-middle)這種方式的攻擊。所謂「中間人」的攻擊方式,就是「中間人」冒充真正的服務器接收你的傳給服務器的數據,而後再冒充你把數據傳給真正的服務器。服務器和你之間的數據傳送被「中間人」一轉手作了手腳以後,就會出現很嚴重的問題。

SSH的英文全稱是Secure SHell。經過使用SSH,你能夠把全部傳輸的數據進行加密,這樣「中間人」這種攻擊方式就不可能實現了,並且也可以防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是通過壓縮的,因此能夠加快傳輸的速度。SSH有不少功能,它既能夠代替telnet,又能夠爲ftp、pop、甚至ppp提供一個安全的「通道」。

最初SSH是由芬蘭的一家公司開發的。可是由於受版權和加密算法的限制,如今不少人都轉而使用OpenSSH。OpenSSH是SSH的替代軟件,並且是免費的,能夠預計未來會有愈來愈多的人使用它而不是SSH。

SSH是由客戶端和服務端的軟件組成的,有兩個不兼容的版本分別是:1.x和2.x。用SSH 2.x的客戶程序是不能鏈接到SSH 1.x的服務程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。

SSH的安全驗證是如何工做的

從客戶端來看,SSH提供兩種級別的安全驗證。

第一種級別(基於口令的安全驗證)只要你知道本身賬號和口令,就能夠登陸到遠程主機。全部傳輸的數據都會被加密,可是不能保證你正在鏈接的服務器就是你想鏈接的服務器。可能會有別的服務器在冒充真正的服務器,也就是受到「中間人」這種方式的攻擊。

第二種級別(基於密匙的安全驗證)須要依靠密匙,也就是你必須爲本身建立一對密匙,並把公用密匙放在須要訪問的服務器上。若是你要鏈接到SSH服務器上,客戶端軟件就會向服務器發出請求,請求用你的密匙進行安全驗證。服務器收到請求以後,先在你在該服務器的家目錄下尋找你的公用密匙,而後把它和你發送過來的公用密匙進行比較。若是兩個密匙一致,服務器就用公用密匙加密「質詢」(challenge)並把它發送給客戶端軟件。客戶端軟件收到「質詢」以後就能夠用你的私人密匙解密再把它發送給服務器。

用這種方式,你必須知道本身密匙的口令。可是,與第一種級別相比,第二種級別不須要在網絡上傳送口令。

第二種級別不只加密全部傳送的數據,並且「中間人」這種攻擊方式也是不可能的(由於他沒有你的私人密匙)。可是整個登陸的過程可能須要10秒。

Windows下的OpenSSH解決方案

能夠看到,SSH具有不少優點,所以不少現代Linux服務器基於安全考慮已經再也不開放傳統的telnet和ftp服務,而是採用更安全SSH和sftp。隨Linux愈來愈多的進入服務器領域,這種狀況也愈來愈常見。從安全角度上來看這固然是個進步,不過也帶來了新的問題。由於目前用來提供SSH相關服務的OpenSSH主要在Linux環境開發的,爲了讓採用windows平臺的客戶機與Linux服務器上的OpenSSH服務器通訊,咱們有必要尋找一個OpenSSH的windows解決方案。固然,基於SSH的衆多安全特性,讓windows服務器能夠運行SSH相關服務也是個誘人的想法。爲此,尋找windows平臺下的SSH解決方案成爲不少網管的目標。

這裏,首先歸入考慮的仍是OpenSSH的for windows版本。畢竟,OpenSSH幾乎是如今SSH實現的代名詞,與現有各類SSH服務器和客戶端的兼容性很是良好。我曾經遇到過其它一些支持SSH的客戶端工具生成的密匙沒法被SSH服務器識別的狀況,在我更換了OpenSSH的密匙生成工具從新生成密匙後解決了問題。在本文中,咱們將主要介紹windows平臺的OpenSSH工具的使用。OpenSSH for windows其實是Cygwin系列安裝包中的OpenSSH安裝包,它在無需安裝整個Cygwin安裝包的狀況下安裝OpenSSH所需的最小工具集。

小知識:什麼是Cygwin

Cygwin是Windows下的一個Linux仿真環境,它包括兩部分,一是cygwin1.dll文件,它做爲一個Linux API仿真器層爲各Linux應用程序提供各類Linux下的系統調用。另外一部分包括一系列Linux下的經常使用工具包,這些工具包是用l這些工具的源碼針對Cygwin環境重慶編譯而成,本文介紹的OpenSSH for windows就是這些工具包中的一個。須要注意的是Cygwin並不能讓原生Linux程序在windows下直接運行,若是你想讓一個Linux應用程序在windows下運行,你將不行不將應用程序從源代碼從新編譯。

不過OpenSSH for windows是一個命令行的工具,並且目前與windows 2003的兼容性還不是很好。其它還有一些windows平臺的OpenSSH替代品,下面我主要介紹幾種免費的產品。

PuTTY是這些產品中最有名的一種,它實際包含了多個工具分別用來完成SSH的各個功能,包括了SSH1和SSH2的客戶端和服務器端實現。它採用相似相似BSD的MIT軟件許可證。它也主要是一個基於命令行的工具。

WinSCP是一個Windows環境下使用SSH的開源圖形化SFTP客戶端。同時支持SCP協議。它的主要功能就是在本地與遠程計算機間安全的複製文件。它的最大特色是界面很是友好,使用時能夠選擇windows資源管理器界面或者「Norton Commander」界面,並且已經有中文版本。惋惜,在個人Windows XP機器上,安裝始終報錯。

Secure iXplorer GPL是PuTTY'工具包中pscp.exe(用於安全複製文件)的一個圖形化前端。

FileZilla是一款windows平臺下的功能強大的FTP客戶端軟件,它有豐富的功能特性,並支持SFTP。

到此爲止,咱們介紹了幾種主要的windows平臺下的SSH安全應用工具,在下一篇文章裏,咱們將主要介紹windows下面的OpenSSH系列工具的安裝和使用。雖然這與Linux下面的安裝與使用基本相似,不過因爲是在windows環境下使用,在一些具體的設置上稍有不一樣,咱們會重點介紹一下這些變化。
相關文章
相關標籤/搜索