公司報表要用SFTP SSH協議信任免密碼上傳到指定報表服務器...
- 坑1、FTP與SFTP不等同於HTTP與HTTPS;
- 坑2、免密碼不是簡單的不設置密碼在路由開白名單IP;
- 坑3、freeSSHd.exe搭建SFTP服務器就這么簡單不要想那么復雜;
- 坑4、puttygen.exe生成密鑰對為什么兩天兩夜不前進;
- 坑5、拿到的公鑰為什么不對;
- 坑6、拿到的私鑰為什么又不對;
到此只想深深的吸口氣感慨一句“好懷念那些年在大樹下玩耍的日子”。
1、坑1可以直接閱讀各種百科有詳細的教程;坑2完全是被同事誤導不提也罷。
2、SFTP服務器的搭建
1.下載freeSSHd一鍵安裝好后,檢查下進程與服務把FreeSSHDService.exe進程關閉,服務FreeSSHDService先停止。
2.管理員運行FreeSSHd,選擇Users標簽添加用戶,這里的login名字很重要后面創建公鑰要用
3.開啟日志
4.SHH視情況修改,如:端口被占用等都可以自行修改
5.方便公鑰管理可以加一級目錄
6.上傳目錄可以更改個
7.點擊應用並去Server status啟動服務(多點幾次沒毛病)
到此SFTP服務器就設置成功了。真的成功了一點不復雜。
3、生成密鑰對,生成密鑰對有很多方式這里用puttygen.exe(網上搜索PuTTY)生成,因為簡單方便,不粗心根本不會像我一樣開機傻等了兩天兩夜。
保存私鑰1
保存密鑰2
保存公鑰1(不會用到)
保存公鑰2,選擇公鑰字符串復制到文件夾下建立一個文本文件並命名為SFTP服務器上創建的登錄名(這里用的是test1)並去除后綴。
到此密鑰對獲取完成。
坑5、拿到的公鑰為什么不對?
答:因為SFTP服務器上公鑰要使用 保存公鑰2 的形式。為此比較下兩個公鑰有什么不一樣:
接着把公鑰2(test1)傳到SFTP服務器公鑰管理目錄
這時用SFTP連接工具鏈接SFTP服務,連接私鑰用 保存私鑰1 就能鏈接上了。
到此就完了嗎?沒有完全沒有,我們的目的是在代碼里面生成報表,再用代碼上傳,這就出現了
坑6、拿到的私鑰為什么又不對?
答:先看上面保存私鑰1與保存私鑰2的區別
PCSK與PEM上,在代碼里面我們要用到PEM形式的私鑰來進行連接,連接類庫推薦用SSH.NET
到此完成。