需求:工作中需要接收外部机构的文件,要搭建一个SFTP服务器。Linux中SFTP是自带的服务,Windows上要额外安装软件,这里用免费的FreeSSHd,配置很简单。但也有局限性,听说FreeSSHd 从2009年就停止维护了,所以要搭建SFTP服务首选还是Linux系统。

1、下载和安装FreeSSHd

下载链接:http://www.freesshd.com/?ctt=download

安装过程一路选“是”,除了下图这一步是/否都可。

2、配置与运行

启动时要右键选择管理员身份启动,否则后面有坑。要配置的几个地方:

  • 创建用户Users:一般选择Password和Public key两种方式,先选择Password。

  • 配置SSH: 这里IP、端口和最大连接数可以按需配置,最大连接数0表示不限制,我保持默认。

  • 认证方式:上面选择了Password认证方式,这里要选Allowed或者Required(选Required的话,即使是公钥登录也要输密码)。

  • 配置SFTP映射路径:就是想让用户看到的文件路径。这里只能配置一个,不能依据用户区分。

以上参数配置好后,就可以测试了,其余的参数可以根据需求改改。注意每改完一个参数后,一定要点应用。

配置完所有参数后,在Server status界面重启下SSH服务。

4、连接测试

网上有很多Windows上访问SFTP的客户端软件,我用WinSCP,输入IP和刚刚的用户密码就可以访问了。

WinSCP下载:https://winscp.net/eng/docs/lang:chs#%E4%B8%8B%E8%BD%BD

5、用秘钥访问SFTP

秘钥访问比用户名密码访问的配置复杂一点,但优点是以后用户每次访问不再需要输密码,能直接访问。原理可百度。

(1)首先,要在SFTP的客户端生成一对公钥和私钥,WinSCP有自带的功能可以生成(还可以选择用git,SecureCRT等工具),操作如下,选择使用putty生成秘钥对。

(2)点击Generate, 就生成了一对公钥和私钥,上面方框里的内容就是公钥,全选复制,保存在一个以访问用户名称命名的文本文件里,例如sftpuser1;然后点击Save private key保存私钥到本地。

注意:不要点击Save public key来保存公钥,因为这样保存后的格式和上面方框中的不同,多了些没用的内容,会导致服务端将公钥识别为一个无效的公钥。(这个坑我研究了一小时才发现原因,后来用别的工具生成秘钥对登录成功了,对比公钥内容才发现之前生成的公钥格式有问题。)

(3)将刚刚保存的公钥文件发给SFTP服务端,服务端需要将公钥保存在下图配置的公钥文件夹内。下面Password认证要配置Allowed或Disabled, Public Key认证选择Allowed。

另外用户设置中的认证方式要改成公钥方式:

(4)回到SFTP客户端,还是用WinSCP访问,点击高级,指定私钥文件的路径,点击确定后登陆,大功告成。

6、报错处理:

(1)“拒绝访问”:

解决方式:服务端重启FreeSSHd,一定要右键以管理员身份启动。

(2)“Server refused public-key signature despite accepting key!”:

解决方式:一般是服务端的公钥文件缺失或者文件格式不对造成的,检查一下公钥文件放的位置是否正确,内容是否和当初生成的格式一致,文件名也必须与登录用户名一样,不能有后缀。

Windows 部署SFTP服务端相关推荐

  1. .net 部署到服务端IIS,Process调用exe程序无法运行问题解决

    场景: 开发某一功能将html内容转换为pdf,采用第三方插件wkhtmltopdf.exe进行转换.在本地调试正常运行,部署到服务端后文件没有正常生成. IIS中,Process打不开cmd程序,程 ...

  2. Linux部署SFTP服务

    Linux - 建设篇 第二章 Linux部署SFTP服务 Linux - 建设篇 系列文章回顾 下章内容 Linux虚拟机安装SSH服务 创建ftp所属组的用户,设置密码,创建用户家目录 修改ssh ...

  3. CentOS8上部署NFS服务端和客户端

    centos8上部署nfs服务端和客户端 文章目录 背景 服务端与客户端信息 配置服务端 安装软件包 编辑配置文件 验证并使配置生效 启动服务端服务 查看服务端状态: 配置客户端: 安装软件包 启动客 ...

  4. CentOS6.6部署VNC服务端

    为什么80%的码农都做不了架构师?>>>    VNC (Virtual Network Computer)是虚拟网络计算机的缩写.VNC 是在基于 UNIX 和 Linux 操作系 ...

  5. windows安装Oracle12 (服务端+客户端)

    目的: windows 系统下,实现: 1 多台机器之间的通信.如有四台机器且在一个子网内,要先把机器连起来,能够互相ping,然后继续后续 2 第二件事情,是搭建Oracle服务/客户端环境.为了更 ...

  6. ZeroTier部署moon服务端以及配置客户端

    服务端配置 1.安装ZeroTier并加入网络 moon也是要在你自己的网络里面,也就是说是你网络的moon. curl-s https://install.zerotier.com/ | sudo ...

  7. 部署FileZilla服务端与客户端

    FileZilla服务端下载地址: FileZilla服务端https://www.filezilla.cn/download/server FileZilla客户端下载地址: FileZilla客户 ...

  8. nagios系列(一)centos6.5环境部署nagios服务端

    nagios软件安装包存放目录:/home/oldboy/tools nagios服务安装目录:/usr/local/nagios 1.配置yum源 echo "------ step 1: ...

  9. windows版Rsync服务端和客户端cwRsync_4.1.0安装测试

    下载地址:https://download.csdn.net/download/qq_32421489/87463506 服务端安装: cwRsyncServer(服务端)配置步骤 1.双击运行wRs ...

最新文章

  1. python的image读取的图片是什么类型的-python如何实现读取并显示图片(不需要图形界面)...
  2. Codeigniter 获取当前的控制器名称和方法名称
  3. Netflix 工程师的生活 —— 40毫秒的案例
  4. mysql 5.6.16 log_mysql-5.6.16装配脚本
  5. outlook自动保存html,当创建一个新的HTML电子邮件时保持默认的Outlook格式
  6. MTK 驱动开发(37)--如何确定阻止进入suspend的原因
  7. Oracle 数据文件(Datafile ) 大小 限制 说明
  8. py 生产csv文件_数据处理技巧 | glob 被忽略的超强文件批量处理模块
  9. 力软新版APP上线,采用js语言,基于Vue.js和uni-app框架
  10. 计算机829大纲,829计算机基础考试大纲
  11. C++封装Mysql数据库
  12. TIDSP TMS320F28075 芯片串口烧录软件编写
  13. 网页对话框:window.showModalDialog的基本用法
  14. 三菱RS指令无协议通信功能概述
  15. mysql stmt attr set_mysqli_stmt::attr_set()
  16. 基于springboot的电影推荐网站管理系统
  17. 关于XDR的这些问题你都了解吗?
  18. Huawei 华为云 机器翻译调用 详解
  19. 打工人最怕听到的词是团建
  20. 计算机软件可以授予专利权吗,软件产品能申请专利吗?

热门文章

  1. 巧妙利用CSS3实现太阳系行星公转运动轨迹
  2. 【C语言】十大经典排序代码及GIF演示
  3. python汉字编码错误_python文件以错误的编码utf8加载
  4. numpy_fix函数
  5. 003-1电感基础知识
  6. Python log函数
  7. python回车键退出_python回车退出程序
  8. 熟悉c语言,熟悉c语言编程环境.ppt
  9. 关于虚拟机linux系统eth0无IP地址的解决办法
  10. java 实现PBE加密解密