SFTP免密码登录踏坑经历

公司报表要用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

到此完成。

 

posted on 2018-09-15 15:06  Azeri  阅读(5472)  评论(0编辑  收藏  举报

导航