Proxmox VE给WindowsServer虚拟机设置RDP和SFTP

开启RDP

打开服务器管理器

image-20251029143110817

本地服务器 - 远程桌面

image-20251029143147840

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

image-20251029143242635

这样就ok啦

image-20251029143345459

SFTP

安装openssh服务器

搜索powershell并右击以管理员身份运行

image-20251029164031801

执行以下代码开启openssh服务

1
Add-WindowsCapability -Online -Name OpenSSH.Server*

image-20251029165408290

设置自动启动,并且查看下设置结果

1
2
3
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Get-CimInstance -ClassName Win32_Service -Filter "Name = 'sshd'" | Select-Object Name, Status, StartMode

image-20251029171654733

配置SFTP服务器

我们开一下隐藏文件

image-20251029172025535

我们打开配置文件 C:\ProgramData\ssh\sshd_config

启用SFTP子系统

找到并取消 Subsystem sftp 这行的注释

确保密码认证开启

检查 PasswordAuthentication 是否设置为 yes

(可选)限制用户仅使用SFTP

在文件末尾添加类似以下配置,可以将特定用户(如sftpusers组)限制在各自家目录且仅使用SFTP

1
2
3
4
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no

创建SFTP用户并设置权限

创建用户组(可选)

如果前面配置中使用了 sftpusers 组,先创建它

1
New-LocalGroup -Name "sftpusers"

创建SFTP用户

1
2
$password = ConvertTo-SecureString "你的强密码" -AsPlainText -Force
New-LocalUser -Name "sftpuser" -Password $password

image-20251029173104338

将用户加入组

如果创建了 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地址>

然后输入用户密码。

image-20251029174412947

使用图形化工具(如WinSCP、FileZilla)

新建连接,协议选 SFTP,主机名填虚拟机IP地址,端口 22,用户名和密码填写刚才创建的SFTP凭据。