標籤:http 使用 os io 檔案 資料 ar cti
Windows xp 下 搭建 基於 ssh 的sftp 伺服器,伺服器端可以用 freesshd,F-secure server等,filezilla server不可用,之前傻乎乎的用filezilla 來做伺服器,找不到任何有關sftp的配置選項,推薦用freesshd,免費、簡單,直觀,用戶端可以用一般的支援sftp的都可以,filezilla,f-secure client 等,我用freesshd和filezillazilla 搭建sftp 服務,我在內網搭建的,如果在外網發布,防火牆上得做一個地址映射。關於ssh,sftp可以上網找介紹,反正是加密安全傳輸資料。
Freesshd:
各項配置非常簡單直觀,配好監聽的ip地址和連接埠(連接埠預設為22,建議不用22連接埠,網上經常有人掃描22連接埠,ssh弱口令攻擊),在users裡建立使用者賬戶,host restrictions 可以簡單的對用戶端可訪問的ip地址做些限制,有白名單和黑名單兩種模式,logging記錄txt格式的日誌,online users 顯示當前線上的使用者。Sftp選項下設定sftp的主目錄。
重點講一下認證吧,freesshd支援兩種方式的認證,password和public key,你可以使用其中的任意一種,也可以要求用戶端同時進行兩種認證,也就是說,如果兩個都設定為required,用戶端要想連入伺服器,得同時要有密碼和public key。都設為allowed,任意一種認證都可以進入伺服器。第一種認證簡單,只要在用戶端輸入使用者名稱和密碼就可以,第二種就需要一對密鑰了(公開金鑰和私密金鑰,私密金鑰用戶端持有,公開金鑰要放到伺服器上,圖中的public key folder就是存放各個用戶端私密金鑰對應的公開金鑰的).
產生金鑰組的工具,推薦使用一款叫putty的工具軟體,運行該軟體下的puttygen.exe ,如,點擊generate,按操作提示在空白處移動滑鼠即可,儲存公開金鑰和私密金鑰檔案,注意:公開金鑰和私密金鑰的檔案名稱要和使用者名稱一致,比方使用者名稱是jane,公開金鑰和私密金鑰檔案名稱分別為jane,jane.ppk。公開金鑰放到freesshd下的pulic key folder,私密金鑰是用戶端使用的。
關於用戶端filezilla :開啟網站管理器,填好要串連的網站資訊及使用者名稱和密碼,如果要求公開金鑰認證的(公開金鑰認證時,使用者名稱那一欄還是要填的,密碼就不用填了),需要在sftp選項中添加putty產生的那個私密金鑰檔案(這裡,我犯了一個錯誤,把私密金鑰檔案放在了一個中文目錄下,一直都不起作用,後來放到一個英文檔案夾下才可以,看來老外的軟體還是對英文支援比較好)這樣,整個sftp就搭建完成了,公開金鑰認證的方式,伺服器和用戶端密鑰的交換還可以使用putty下的pageant實現,把私密金鑰加到pageant的key list中就可以了。
=======================
注意:
在用戶端登陸過程中為了避免頻繁的要求輸入使用者名稱和密碼,故使用密鑰驗證。在使用密鑰驗證的過程中最容易出現public key驗證錯誤的情況
在密鑰驗證失敗時最直接的原因就是pubic key的內容不能被freessh識別,所以沒法認證私密金鑰,故refuse connnect
putty產生金鑰組的過程中必須要手動儲存產生的public key內容到與登入使用者名稱相同的公開金鑰檔案中,只有手動儲存的內容 freessh才能識別這種類型的公開金鑰,並且所有公開金鑰內容必須在一行上,不能出現分行符號,最好用txt儲存,不能存在文檔格式符號。
private key尾碼名必須是.ppk檔案名稱為登入的使用者名稱,私密金鑰內容格式不受限制,只要本地用戶端能識別即可。添加私密金鑰到sftp client完成密鑰認證。