Windows下用sftp巧妙打造安全傳輸

2021-08-30 19:09:55 字數 2543 閱讀 3935

眾所周知在windows系統和linux類系統的最大區別就在於他的非開源性,因此在windows下我們傳輸檔案,共享資源主要通過ftp協議 來實現,和以前的tftp協議相比ftp提供了必要的安全保證措施,然而對於一些要求網路安全級別比較高,需要嚴格防範傳輸資料被監聽工具竊取的情況來 說,ftp協議就無法勝任了,這時我們應該尋找更加安全的傳輸協議來保證伺服器的安全。今天筆者就為各位it168的讀者介紹在windows下如何通過 sftp打造安全傳輸。

一、什麼是sftp?

一般來說兩台機器間的檔案傳輸,除了常用的ftp以外,還可以通過scp/sftp協議(就是本文介紹的sftp)進行。下面我們就來看看sftp協議與ftp協議之間的差別。

(1)和ftp不同的是sftp/scp傳輸協議預設是採用加密方式來傳輸資料的,scp/sftp確保傳輸的一切資料都是加密的。而ftp一 般來說允許明文傳輸,當然現在也有帶ssl的加密ftp,有些伺服器軟體也可以設定成「只允許加密連線」,但是畢竟不是預設設定需要我們手工調整,而且很 多使用者都會忽略這個設定。

(2)普通ftp僅使用埠21作為命令傳輸。由伺服器和客戶端協商另外乙個隨機埠來進行資料傳送。在pasv模式下,伺服器端需要偵聽另一 個口。假如伺服器在路由器或者防火牆後面,埠對映會比較麻煩,因為無法提前知道資料埠編號,無法對映。(現在的ftp伺服器大都支援限制資料埠隨機 取值範圍,一定程度上解決這個問題,但仍然要對映21號以及乙個資料埠範圍,還有些伺服器通過upnp協議與路由器協商動態對映,但比較少見)

(3)當你的網路中還有一些unix系統的機器時,在它們上面自帶了scp等客戶端,不用再安裝其它軟體來實現傳輸目的。

本文介紹的所有工具都不是誕生於windows系統的,他們是從unix移植過來的,配置方式仍然使用了conf檔案的方式,幾乎沒有圖形界 面。而且這些配置檔案一般用unix換行符,所以建議各位讀者使用ultraedit等工具而不是notepad來編輯,一是確保能正常顯示,二是確保保 存時不會破壞它的格式導致服務程式無法讀取。

伺服器端我們使用openssh,它自帶了cygwin環境以及scp/sftp的伺服器(sftp是ssh的乙個「子服務」,在ssh通道中使用某個命令在需要時啟用)。

三、配置sftp服務端:

sftp服務端的安裝與配置還是比較簡單的,通過幾條命令就可以開啟sftp服務。

第五步:預設情況下openssh將新增乙個應用程式到開始程式中,名字叫做openssh for windows.(如圖7)

第六步:安裝的最後openssh會自動建立ssh安全加密key,保證ssh傳輸過程中的安全可靠。(如圖8)

第七步:完成所有安裝工作,點「完成」按鈕回到桌面。(如圖9)

第八步:接下來就要啟動該服務了,我們通過「開始->執行->輸入cmd後回車」進入到命令提示視窗,然後通過cd命令定位到c:\programfiles\openssh\bin目錄。(如圖10)

第九步:依次執行mkgroup -l >> ……\etc\group mkpasswd -l >> ……\etc\passwd命令,這樣你目前windows本地帳戶中的使用者就都可以登入該sftp伺服器了,他們自對檔案目錄的訪問許可權和ntfs許可權 一致。此步驟相當於ftp中的建立訪問帳號。(如圖11)

第十步:新增完各個訪問帳戶後我們可以到c:\program files\openssh\etc目錄中來檢視group和passwd兩個檔案的內容,當然這些內容是經過了加密的。(如圖12)

這兩個檔案儲存的都是帳戶相關資訊,正如前面所說他們是從unix移植過來的,配置方式仍然使用了conf檔案的方式,幾乎沒有圖形介面。而且 這些配置檔案一般用unix 換行符,建議各位it168讀者使用ultraedit等工具而不是notepad來編輯,一是確保能正常顯示,二是確保儲存時不會破壞它的格式導致服務 程式無法讀取。(如圖13)

第十一步:最後在剛才進入的c:\program files\openssh\bin目錄下執行net start opensshd命令,這將啟動opensshd服務,我們就可以開始訪問了。(如圖14)

至此伺服器端的配置完成,下面我們來介紹如何在客戶端上訪問建立的sftp服務。

四、配置sftp客戶端:

我們根據實際填寫sftp伺服器的位址和訪問帳戶資訊,協議方面保持預設的sftp (allow scp fallback)即可,完成設定後點login登入按鈕後會出現「使用提示」資訊,不用理會繼續即可。(如圖16)

登入進入伺服器後我們會看到介面顯示和我們之前熟悉的ftp登入工具一樣,特別是和flashfxp登入ftp伺服器類似。右邊是我們看到的sftp伺服器發布的目錄。(如圖17)

當然這個預設發布目錄可能不是我們希望看到的,如果想要訪問你的c盤,我們可以先把焦點放在伺服器那半邊視窗,然後按ctrl+o,輸入/cygdrive/c並回車,這樣就可以把這個目錄加到winscp的書籤或者作為登入時的預設目錄。(如圖18)

五、總結:

當我們要關閉sftp服務時只需要在伺服器端對應目錄執行net stop opensshd指令即可,這樣對應服務將自動關閉。(如圖19)另外如果在客戶端上無法訪問sftp伺服器的話,很可能是因為xp系統自帶防火牆搗亂, 我們關閉防火牆或者手動在windows防火牆配置中允許c:\program files\openssh\usr\sbin\sshd.exe程式的執行和對網路的訪問即可。

Windows下用sftp巧妙打造安全傳輸

眾所周知在windows系統和linux類系統的最大區別就在於他的非開源性,因此在windows下我們傳輸檔案,共享資源主要通過ftp協議來實現,和以前的tftp協議相比ftp提供了必要的安全保證措施,然而對於一些要求網路安全級別比較高,需要嚴格防範傳輸資料被監聽工具竊取的情況來說,ftp協議就無法...

在Filezilla下用sftp上傳檔案

之後,到虛擬機器上的ubuntu上安裝filezilla,在終端上輸入命令列 sudo apt get install filezilla安裝成功後,用ifconfig命令找到自己的虛擬機器的inet位址 確保虛擬機器安裝了ssh sudo apt get install ssh關閉防火牆 ufw ...

用sftp 代替(並行)ftp

很久沒有寫部落格了,發現把一些做過的寫下來可以有助於梳理自己的思路,練習一下自己的表達能力,工作中一般用的更多的是 c 在.net 平台下,希望以後有機會能寫一寫這方面的文章。好久沒有寫部落格了,如果有寫的不清楚的地方,還請大家多多包涵,並指正。ftp file transfer portocol ...