Proxmox VE给WindowsServer虚拟机设置RDP和SFTP
Proxmox VE给WindowsServer虚拟机设置RDP和SFTP
Riv3n开启RDP
打开服务器管理器

本地服务器 - 远程桌面

勾选“允许” - “确定” - “应用” - “确定”

这样就ok啦

SFTP
安装openssh服务器
搜索powershell并右击以管理员身份运行

执行以下代码开启openssh服务
1 | Add-WindowsCapability -Online -Name OpenSSH.Server* |

设置自动启动,并且查看下设置结果
1 | Start-Service sshd |

配置SFTP服务器
我们开一下隐藏文件

我们打开配置文件 C:\ProgramData\ssh\sshd_config
启用SFTP子系统
找到并取消 Subsystem sftp 这行的注释
确保密码认证开启
检查 PasswordAuthentication 是否设置为 yes
(可选)限制用户仅使用SFTP
在文件末尾添加类似以下配置,可以将特定用户(如sftpusers组)限制在各自家目录且仅使用SFTP
1 | Match Group sftpusers |
创建SFTP用户并设置权限
创建用户组(可选)
如果前面配置中使用了 sftpusers 组,先创建它
1 | New-LocalGroup -Name "sftpusers" |
创建SFTP用户
1 | $password = ConvertTo-SecureString "你的强密码" -AsPlainText -Force |

将用户加入组
如果创建了 sftpusers 组,将用户加入该组
1 | Add-LocalGroupMember -Group "sftpusers" -Member "sftpuser" |
设置家目录权限
确保用户的家目录(没有的话先新建一下)(例如 C:\Users\sftpuser)权限设置正确,通常需要设置为755。可以使用以下命令:
1 | icacls "C:\Users\sftpuser" /grant "sftpuser:(OI)(CI)RX" |
如果计划使用其他目录作为SFTP根目录,同样需要设置好该目录的权限。
配置Windows防火墙
需要允许SSH(SFTP)流量通过。在PowerShell中运行:
1 | New-NetFirewallRule -Name "OpenSSH-Server" -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 |
这条命令创建了一条防火墙入站规则,允许TCP端口22的连接
重启SSH服务
完成配置后,重启SSH服务使更改生效:
1 | Restart-Service sshd |
测试SFTP连接
服务器搭建好后,需要进行测试。
使用命令行
在宿主机(如果是Windows,确保已安装OpenSSH客户端)的PowerShell或CMD中执行:
1 | sftp sftpuser@<虚拟机IP地址> |
然后输入用户密码。

使用图形化工具(如WinSCP、FileZilla)
新建连接,协议选 SFTP,主机名填虚拟机IP地址,端口 22,用户名和密码填写刚才创建的SFTP凭据。



