[window] 2024/7/30 14:52:19
SFTP(Secure File Transfer Protocol)是一种通过 SSH(Secure Shell)启用文件传输的网络协议。与传统的 FTP 不同,它提供了一种更加安全的传输方式,因为数据在传输过程中都经过了加密。
在window服务器上设置sftp参考以下步骤:
1. 安装OpenSSH服务
用管理员身份打开powershell,然后依次执行命令:
// 安装ssh客户端和服务器 Add-WindowsCapability -Online -Name OpenSSH.Client Add-WindowsCapability -Online -Name OpenSSH.Server //启动ssh服务 Start-Service sshd Start-Service ssh-agent //设置ssh服务开机启动 Set-Service -Name sshd -StartupType 'Automatic' Set-Service -Name ssh-agent -StartupType 'Automatic'
上面三个步骤如果没报错则往下执行,我在执行 Start-Service ssh-agent 提示: Start-Service 由于以下错误无法启动服务'OpenSH Authentication Agent',这里我更改启动类型,执行Set-Service -Name ssh-agent -StartupType Manual后,再启动服务就行了。
2. 配置防火墙,允许22端口能访问。 云服务器还需要在云服务器的控制面版中添加22入站规则。
3. 设置sftp用户及目录
//创建新用户sftpuser,含密码 net user sftpuser YourPassword /add //添加用户到用户组,可以自己新建用户组,这里直接添加到users //比如自定义用户组:New-LocalGroup -Name "sftpgroupusers" net localgroup Users sftpuser /add //设置用户对目录的权限,比如d:\sftp\sftpuser icacls D:\SFTP\sftpuser /grant sftpuser:F /T
4. 配置sshd_config
打开C:\ProgramData\ssh\sshd_config 文件编辑,在底部插入
//代码如果存在可以删去 Subsystem sftp sftp-server.exe //这里是需要的 Match User sftpuser ChrootDirectory D:\SFTP ForceCommand internal-sftp AllowTcpForwarding no PermitTunnel no X11Forwarding no
5. 重启sshd服务:Restart-Service sshd
6. 使用winscp连接sftp,输入localhost或者服务器ip,端口号22,用户名和密码是之前设置的,然后连接就完成了。