一、环境说明
Windows 7 x64
OpenSSH-Win64
二、安装配置步骤
1、选择下载OpenSSH-Win64,解压到C:\Program Files目录下,重命名为OpenSSH。
2、在CMD窗口执行下面的命令
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
注意,需要先切换到OpenSSH目录下。
3、配置和启动服务
点击开始菜单-运行,输入Services.msc,回车
启动下面两个服务,并将启动类型修改为自动。
4、配置防火墙策略
开始菜单-控制面板-系统和安全-Windows 防火墙-高级设置-入站规则,右键新建入站规则,选择端口
在特定本地端口输入 22
只选择专用,取消域和公用的默认选择。
5、新建计算机用户
计算机 - 右键管理 - 本地用户和组 - 用户,新建用户,如mysftpuser,设置用户名和密码
6、配置OpenSSH
这一步非常重要,否则用户登录上来就可以对计算机所有磁盘和目录进行操作。因此,必须要限制用户访问的目录,必须是我们指定的目录,如D:\FileStore
修改sshd_config配置文件,配置ChrootDirectory为我们指定的目录
ChrootDirectory D:\FileStore
7、在系统服务列表重启openssh的两个服务
三、根目录权限设置
作为一个服务器,禁止客户端除下载外的其他权限,非常有必要。估计没有人原因自己的服务器上的文件或者目录被用户随意创建、修改或者删除。下面我们就来设置SFTP服务器根目录的用户读写权限,这里需要使用Windows的管理员用户来进行操作。
第1步,我们右键服务器的根目录,右键,属性,点击安全标签页,点击编辑,增加我们之前创建的mysftpuser这个SFTP专用用户。
输入mysftpuser,然后检查名称,即可出现该用户的全称。点击确定,即可将该用户添加到列表中,然后点击应用-确定即可。
这时我们就可以在用户列表里面选择到mysftpuser这个用户了,点击高级选项,
我们可以看见mysftpuser这个用户目前已经拥有的权限了,我们先选中mysftpuser这个用户,再点击更改权限
选择添加,在查找对象名称里面输入mysftpuser这个用户,点击检查名称,然后点击确定,这时我们可以发现出现了很多权限的列表,这就是我们所需要的!
这时我们可以选择拒绝所有具有写或者修改操作的权限,如:创建权限、删除权限、更改权限,注意这里不要把读取的属性给禁用了!
最后,不断点击确定,关闭一级级的对话框即可。
四、连接测试
连接成功
下面测试删除文件、创建文件和目录、编辑文件的权限,即可得到我们所期望的报错了!
OK,至此我们成功的在Windows系统使用OpenSSH创建了一个SFTP服务器。
真的是一个字一个字的敲出来的,看官若是觉得满意,就请酌情打个赏呗(^_^)