公司报表要用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
到此完成。