在windows下使用OpenSSH

來源:互聯網
上載者:User
SH與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。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.