Windows 7下 搭建 基于 ssh 的sftp 服务器

时间:2023-03-08 16:15:51
Windows 7下 搭建 基于 ssh 的sftp 服务器

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的主目录。

Windows 7下 搭建 基于 ssh 的sftp 服务器

Windows 7下 搭建 基于 ssh 的sftp 服务器

重点讲一下认证吧,freesshd支持两种方式的认证,password和public key,你可以使用其中的任意一种,也可以要求客户端同时进行两种认证,也就是说,如果两个都设置为required,客户端要想连入服务器,得同时要有密码和public key。都设为allowed,任意一种认证都可以进入服务器。第一种认证简单,只要在客户端输入用户名和密码就可以,第二种就需要一对密钥了(公钥和私钥,私钥客户端持有,公钥要放到服务器上,图中的public key folder就是存放各个客户端私钥对应的公钥的).

Windows 7下 搭建 基于 ssh 的sftp 服务器

产生密钥对的工具,推荐使用一款叫putty的工具软件,运行该软件下的puttygen.exe ,如下图,点击generate,按操作提示在空白处移动鼠标即可,保存公钥和私钥文件,注意:公钥和私钥的文件名要和用户名一致,比方用户名是jane,公钥和私钥文件名分别为jane,jane.ppk。公钥放到freesshd下的pulic key folder,私钥是客户端使用的。

Windows 7下 搭建 基于 ssh 的sftp 服务器Windows 7下 搭建 基于 ssh 的sftp 服务器

关于客户端filezilla :打开站点管理器,填好要连接的站点信息及用户名和密码,如果要求公钥认证的(公钥认证时,用户名那一栏还是要填的,密码就不用填了),需要在sftp选项中添加putty产生的那个私钥文件(这里,我犯了一个错误,把私钥文件放在了一个中文目录下,一直都不起作用,后来放到一个英文文件夹下才可以,看来老外的软件还是对英文支持比较好)这样,整个sftp就搭建完成了,公钥认证的方式,服务器和客户端密钥的交换还可以使用putty下的pageant实现,把私钥加到pageant的key list中就可以了。

Windows 7下 搭建 基于 ssh 的sftp 服务器Windows 7下 搭建 基于 ssh 的sftp 服务器Windows 7下 搭建 基于 ssh 的sftp 服务器

=======================

注意:

在客户端登陆过程中为了避免频繁的要求输入用户名和密码,故使用密钥验证。在使用密钥验证的过程中最容易出现public key验证错误的情况

在密钥验证失败时最直接的原因就是pubic key的内容不能被freessh识别,所以没法认证私钥,故refuse connnect

putty生成密钥对的过程中必须要手动保存产生的public key内容到与登录用户名相同的公钥文件中,只有手动保存的内容 freessh才能识别这种类型的公钥,并且所有公钥内容必须在一行上,不能出现换行符,最好用txt保存,不能存在文档格式符号。

private key后缀名必须是.ppk文件名为登录的用户名,私钥内容格式不受限制,只要本地客户端能识别即可。添加私钥到sftp client完成密钥认证。