windows 服务器下远程copy文件,一般通过ftp或共享方式,云上出于安全考虑,一般不开放共享端口,ftp配置相对麻烦,并且不对与玩惯了linux服务器的用户来说,写备份脚本也不方便,Windows Server 2019支持SSH。从Windows 10版本1809和Windows Server 2019开始,Windows系统支持OpenSSH Server,这使得用户可以通过SSH协议远程登录到这些系统
通过 PowerShell 安装
以管理员身份运行 PowerShell,执行以下命令:
# 检查是否已安装 OpenSSH 服务 Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' # 若未安装,执行安装命令 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
通过 Windows 设置安装(可选)
依次进入“设置”→“应用”→“可选功能”→“添加功能”,搜索并勾选“OpenSSH 服务器”进行安装68。
启动 SSH 服务
Start-Service sshd Set-Service -Name sshd -StartupType Automatic
配置防火墙规则
确保防火墙允许 TCP 端口 22(默认)的入站流量,若未自动配置,手动添加规则:
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
C:\ProgramData\ssh
设置密码用户登录步骤为:
1,客户端通过 ssh-keygent 设置密钥,最新版本的ssh一般都是 id_ed25519, 默认不一定支持rsa和dsa,如果服务端禁用,可以显示开启。
2,一般用户,比如sshuser 把密钥复制到 windows 登录用户目录下的.ssh 下的 authorized_keys 文件中,并设置权限
设置 .ssh 目录权限:
icacls "C:\Users\sshuser\.ssh" /inheritance:r /grant:r "sshuser:(OI)(CI)F" /grant:r "SYSTEM:(OI)(CI)F"
设置 authorized_keys 文件权限:
icacls "C:\Users\sshuser\.ssh\authorized_keys" /inheritance:r /grant:r "sshuser:F" /grant:r "SYSTEM:F"
4,copy远程文件到本地当前目录命令为: scp administrator@10.0.0.3:"D:\bak\race_bjtrt\race_bjtrt_backup_2025_04_26*" .
上面命令把远程windows服务器D:\bak\race_bjtrt\ 下的文件race_bjtrt_backup_2025_04_26* 后面使用通配符匹配到的文件copy到当前目录下。
配置文件路径:C:\ProgramData\ssh\sshd_config。
确保以下配置生效:
# 允许公钥认证 PubkeyAuthentication yes # 指定公钥文件路径(默认已配置) AuthorizedKeysFile .ssh/authorized_keys # 禁用密码登录(可选) PasswordAuthentication no # 允许用户登录(可选) AllowUsers sshuser
Restart-Service sshdwindows server 2019-2022 上远程备份脚本
此脚本实现主要功能如下:
1,打印脚本执行主机的名称
2,打印服务器版本号
3,打印磁盘使用率
4 ,打印已用空间
5,打印剩余空间
6,磁盘使用率大于指定值,自动删除三十天之前备份
7,当删除备份的时候,自动发送邮件,把磁盘使用率,删除的文件通过邮件发出。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!