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

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

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

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

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

注意:

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

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

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

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

Windows 7下 搭建 基于 ssh 的sftp 服务器的更多相关文章

  1. Windows下搭建基于SSH的Git服务器

    Git客户端安装 客户端要同时安装在远程服务器和自己的电脑上,下载地址:http://msysgit.github.io/ 选择安装组件 :也可以默认选择; 图标组件(Addition icons) ...

  2. 在window系统下搭建基于ssh的git服务器

    以下是基于window server 2012搭建的,学习搭建过程需要很多问题,找了许多文章做了一下总结. 1.所需的软件 Git for Windows: MsysGit(Git-1.7.4-pre ...

  3. windows下搭建基于nginx的rtmp服务器

    https://blog.csdn.net/fireroll/article/details/51985688 Windows机器配置:Windows7旗舰版 64位Intel(R) Core(TM) ...

  4. freeSSHD在windows环境下搭建SFTP服务器

    freeSSHD在windows环境下搭建SFTP服务器 0 建议现在windows环境下安装cygwin,否则在windows环境下cmd模式使用不了sftp去连接,可以利用win scp去测试连接 ...

  5. Windows平台下搭建Git服务器的图文教程

    Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...

  6. Windows平台下搭建Git服务器的图文教程(转发)

    Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不讨论),但是SSH有客户端服务器端,所以在window ...

  7. Windows操作系统下搭建Git服务器和客户端。

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

  8. Windows 7下搭建Jmeter测试环境

    jmeter配置.安装 一. 工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用,后 ...

  9. 【大数据系列】windows环境下搭建hadoop开发环境使用api进行基本操作

    前言 搭建完hadoop集群之后在windows环境下搭建java项目进行测试 操作hdfs中的文件 版本一 package com.slp.hadoop274.hdfs; import java.i ...

随机推荐

  1. PHP图片加文字水印和图片水印方法

    文字水印 $dst_path = 'dst.jpg'; //创建图片的实例$dst = imagecreatefromstring(file_get_contents($dst_path)); //打 ...

  2. Python学习笔记五,函数及其参数

    在Python中如何自定义函数:其格式为 def 函数名(函数参数): 内容

  3. shell之冒号的作用

    冒号:   :在shell中是一种命令,意思是总是为真,但是却不做任何操作,即总是为真的空命令 eg:   [root@localhost ~]# ${abc:=t1}-bash: t1: comma ...

  4. php 实现同一个账号同时只能一个人登录

    php 实现同一个账号同时只能一个人登录 张映 发表于 2015-01-22 分类目录: php 标签:mysql, nginx, openfire, php, redis 以前考虑过这个问题,今天实 ...

  5. mysqlbackup

    mysqlbackup 使用学习 1.设置数据库用户的相关权限 '; grant reload,replication client,super,process on *.* to backupuse ...

  6. google浏览器翻译失败解决方案

    用记事本打开 C:\Windows\System32\drivers\etc下hosts文件 在文件末尾加入如下两行 203.208.46.145 translate.google.com 203.2 ...

  7. C语言经典算法100例

    [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...

  8. QT是否流行还是和历史有关啊(各个平台不同时间的方案都讲到了)

    这个还是和历史有关啊..现在基于Qt的桌面软件越来越多的...许多GTK的也在向Qt迁移..可以说在XP时代,微软自己有一套MFC,和成熟的vs系列开发工具..而Qt-Creator是09左右才有项目 ...

  9. poj 1088 动态规划+dfs(记忆化搜索)

    滑雪 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u   Description Mi ...

  10. hdu 1502 Regular Words_高精度+dp

    题意:问按规则排成的串有多少个A(c)>= B(c) >= C(c) 思路:因为写大整数太累,就偷懒了一下直接用java水过 import java.math.BigInteger; im ...