Windows系统使用freeSSHd搭建一个SFTP服务器
1. freeSSHd简介
- freeSSHd是一个SFTP服务器。它用来支持使用密码或SSH免密登录的方式进行上传文件或远程操作系统。
- 说白一点就是一个远程操作的服务端,安装了SFTP服务器的操作系统就可以被支持进行远程操作。这个在liunx操作系统使用的比较常见。但是在windows操作系统上也会有这样的需求,比如我们需要自动化的在另一台windows的服务器上进行远程部署服务,我们就需要能远程操作该系统。
- freeSSHd 是提供给windows的一个免费的SFTP服务器,搭建简单,使用效果也比较好。相对的我们搭建后需要在另一台机子上要搭建SFTP的客户端,来验证搭建是否成功,我们这边采用Putty客户端。
2. 搭建环境
- 两台虚拟机: windows系统
- SFTP服务端:freeSSHd
- SFTP客户端: Putty
3. 下载freeSSHd安装包
2. 安装freeSSHd
- 安装路径修改一下即可,我不喜欢安装在C盘
- 安装后问你是否要生成账户登录的秘钥,选择是
- 具体作用我也不清楚,但是选择否的话后面配置的服务会无法启动
- 这边选择否了也没事,后面还可以在配置界面添加
* 是否第一次启动服务,选择否
- freeSSHd是可以以不同的端口启动多个服务,第一次如果启动的话会占用22端口,后面22端口就无法使用了。而且第一次启动的服务由于没有进行配置启动了也没什么实际用。
- 如果不小心点是,去服务里面关掉freeSSHd Server服务即可。
3. 配置freeSSHd
- 一定要以管理员身份启动freeSSHd
-
3.1. 配置用户
- 配置远程访问是以什么用户登录到该系统进行操作
- 这里的用户名要与本windows系统的用户名一致
- 验证方法支持密码,SSH秘钥登录的方式,我这边选择秘钥登录的方式,密码的比较简单我这边就不实验了。
-
3.2. 配置SSH
- Linsten address 监听地址选择本机IP
- SSH 使用的Prot
端口,默认是22,建议修改为其他的,并配置防火墙权限
- 我这边修改为33端口
- Max number of connections :最大连接数默认是0,至少也要改为1,否则不可连接
3.3. 配置33端口防火墙
- 控制面板-》windows防火墙-》高级设置
-
3.4. 开启日志,方便查错
3.5. 配置Authentication 验证规则
- 公钥地址建议在安装目录下建一个Keys目录单独存放
- 下面的是是否使用密码验证与秘钥验证方式,有禁用,允许,必须使用三种方式。
- 我这边只需要秘钥验证,可以把第一个改为disabled
-
把生成的公钥文件放到Keys文件夹下,文件名字要与用户名一致,并不带任何后缀
-
- 公钥生成方式下文 putty使用中有说明
3.6. 打开FreeSSHd服务
- 如果修改了配置文件,个人建议unload退出系统后,再执行第一步以管理员重启服务,否则可能配置会不生效。
-
-
success (这样freeSSHd就搭建好了)
接下来使用Putty验证FreeSSHd是否可用
4. Putty安装
- 在另一台虚拟机上安装Putty,
- putty下载地址 : https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- 一路下一步即可
5. 生成公钥私钥
- 打开putty的安装目录
- 使用puttygen.exe生成公钥私钥
-
生成公钥文件,与私钥文件到putty安装目录
-
* Putty目录下即可看见私钥与公钥的文件
-
修改公钥文件Administrator
-
- 这一步很重要,直接生成的公钥放到freeSSHd中是无法使用,连接时会报验证不通过的错误
替换之后的公钥文件(公钥信息要放在同一行,切记不可换号)
将公钥拷备到对应的SFTP服务器上
6. 使用私钥远程访问
- 上面我改了33端口后,访问失败了,改回22端口后又可以了,先用22端口吧,端口失败的问题再研究
- 打开cmd到putty安装目录
- 也可以在环境变量中设置putty
- 命令模板
putty –i keyAddress loginUser@IP [ cmd命令]
success,现在就可以远程操作
7. 远程上传文件方法
- 配置freeSSHd
中sftp文件目录,上传的文件就会到这个工作空间(相对目录)
-
执行pscp命令:
pscp keyAddress fileAddr loginUser@IP:relativePath
- success