Windows下通過SSH使用SharpSSH遠程登入主機執行命令傳輸檔案

來源:互聯網
上載者:User
1. 什麼是SSH

SSH 為建立在應用程式層和傳輸層基礎上的安全性通訊協定。SSH 是目前較可靠,專為遠程登入工作階段和其他網路服務提供安全性的協議。SSH是每一台Linux電腦的標準配置,但是在windows系統中預設是沒有安裝SSH的,需要安裝SSH相關服務端軟體,比如FreeSSHD。
2. SSH可以用來做什麼

SSH可以用於遠程登入主機,登入方式通常有兩種:口令登入和公開金鑰登入

一:口令登入:通過在服務端設定的使用者名稱和密碼進行登入,每次都登入都需要填寫密碼

二:公開金鑰登入:通過一對公開金鑰和私密金鑰登入,公開金鑰存放在服務端私密金鑰存放在用戶端,在登入時服務端向用戶端發生一個隨機字串,然後用戶端通過私密金鑰先進行加密然後發生到服務端,在服務端接受和用公開金鑰進行解密,然後匹配是否正確解密來驗證登入,注意:存在在服務端的公開金鑰名稱和使用者名稱一致,已區分不同使用者不同的公開金鑰;這樣每次就可以直接用公開金鑰登入省去了密碼的繁瑣。

SSH可以使用者服務端和用戶端之間雙向檔案傳輸 3. SharpSSH與SSH服務端FreeSSHD

SharpSSH是一個用C#實現的SSH用戶端組件,使用者可以根據需要修改使用改組件已滿足自己的需求,SharpSSH介紹和組件下載網站:http://sharpssh2.codeplex.com/,也可以在這裡下載。

注意:在官網下載SharpSSH會因為主機為安裝Mono而出現Mono.Security.dll的引用錯誤,只需要下載Mono.Security.dll重新引用即可。

我在Windows7 VS2012的環境下測試官網下載的SharpSSH項目升級成功,解決方案如下:


其中有兩個項目:Examples,SharpSSH顧名思義,Examples是使用樣本,SharpSSH就是真正的實現項目,設定Examples為啟動項,運行效果如下:


可以看到,樣本為我們提供了16個功能項,再次我們需要測試遠程登入和檔案傳輸,使用第13, 和16項測試即可,同時也會用到第5項產生公開金鑰私密金鑰對;


用戶端SharpSSH已經實現了,接下來在Windows系統中就需要安裝用戶端了,這裡選擇FreeSSHD作為用戶端,官網下載地址:http://www.freesshd.com/?ctt=download或這裡:http://download.csdn.net/detail/dangercheng/6804861

下載下來直接下一步下一步安裝,安裝完成後運行會提示你是否產生Key選擇是即可,同時會安裝FreeSSHDService服務,選擇關閉該服務;

此時可以看到支援telnet和SSH服務,且都關閉,到此步用戶端服務端都已經準備就緒,下面就進行我們的登入測試和檔案傳輸測試吧; 4. 遠程登入執行命令

上面提過,登入有兩種方式,口令登入和公開金鑰登入,先介紹口令登入吧;

口令登入:即在服務端freeSSHd上建立一個使用者名稱和密碼,使用此密碼口令登入

首先在freeSSHd上的Users選項中點擊Add彈出添加使用者介面,然後Login填寫使用者名稱,authorization選擇Password stored as SHA1 hash 然後填寫密碼和重複密碼,勾選該使用者可用服務,如下圖,建立了使用者名稱和密碼都是test:


然後我們選擇SSH項,將Use new console engine項的勾選去掉已防止中午亂碼,如圖:


選擇確定即可建立成功,然後回到主介面我們開啟SSH服務


如上圖所示即表示SSH服務已經成功開啟;但是有可能會錯誤:常見原因是地址已使用,這是連接埠號碼22已經被使用造成的,關閉該連接埠的進程即可。

接下來我們運行我們的sharpSSH進行登入測試吧。

我們選擇第13項,然後輸入遠程地址I(由於服務端就在本機所以是127.0.0.1),然後不選擇公開金鑰登入,然後輸入密碼,串連成功,執行date命令查詢目前時間:


現在我們測試公開金鑰登入:

公開金鑰登入需要先產生公開金鑰私密金鑰對,我們選擇第5項KeyGen來產生,命名為test(和使用者名稱一致),Sig Type選擇dsa, 然後Comment為空白快顯視窗輸入passphrase我們不輸入直接選擇ok,這樣就在sharpSSH的bin\Debug目錄下產生了我們的test的公開金鑰私密金鑰兩個檔案。如圖:


產生了公開金鑰test.pub和私密金鑰test兩個檔案。然後將公開金鑰檔案test.pub放到freeSSHd指定的公開金鑰檔案夾目錄:


也就是C:\Program Files\freeSSHd\這個目錄下,並去掉尾碼.pub,然後修改test使用者的authorization選擇Public Key如圖:


接下來再測試:


5. 傳輸檔案

首先我們修改服務端檔案位置:


這樣我們服務端的預設位置就是我們在freeSSHd下面自己添加的sftpFile的目錄了,我們在裡面放一個圖片test.jpg,現在我們要將這個圖片傳到我們sharpSSH的目錄頁就是bin\Debug目錄下並改名為testClient.jpg:


可以看見傳輸的速度還是很快的93k0秒完成,有興趣的可以試試大檔案的傳輸,到此關於SSH的登入和檔案傳輸的測試完畢,當然SSH還有其他的很多很多的強大功能,這裡不能一一列舉測試,有興趣自己取試試。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.