windows 下安装openssh 通过免密验证 备份远程windows服务器文件

windows 服务器下远程copy文件,一般通过ftp或共享方式,云上出于安全考虑,一般不开放共享端口,ftp配置相对麻烦,并且不对与玩惯了linux服务器的用户来说,写备份脚本也不方便,‌Windows Serv...

windows 服务器下远程copy文件,一般通过ftp或共享方式,云上出于安全考虑,一般不开放共享端口,ftp配置相对麻烦,并且不对与玩惯了linux服务器的用户来说,写备份脚本也不方便,‌Windows Server 2019支持SSH‌。从Windows 10版本1809和Windows Server 2019开始,Windows系统支持OpenSSH Server,这使得用户可以通过SSH协议远程登录到这些系统


一、安装并配置 OpenSSH 服务器

1. 安装 OpenSSH 服务器

  • 通过 PowerShell 安装
    以管理员身份运行 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

2. 启动服务并配置防火墙

  • 启动 SSH 服务

    powershell
    Start-Service sshd
    Set-Service -Name sshd -StartupType Automatic
  • 配置防火墙规则
    确保防火墙允许 TCP 端口 22(默认)的入站流量,若未自动配置,手动添加规则:

    powershell
    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 目录权限

      powershell
      icacls "C:\Users\sshuser\.ssh" /inheritance:r /grant:r "sshuser:(OI)(CI)F" /grant:r "SYSTEM:(OI)(CI)F"
      • 设置 authorized_keys 文件权限

        powershell
        icacls "C:\Users\sshuser\.ssh\authorized_keys" /inheritance:r /grant:r "sshuser:F" /grant:r "SYSTEM:F"

      3,对于administrator用户  授权文件 在安装目录下的  C:\ProgramData\ssh\administrators_authorized_keys 下,权限设置和2一样


      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到当前目录下。


      配置 OpenSSH 服务器

       修改 sshd_config

      配置文件路径:C:\ProgramData\ssh\sshd_config。

      • 确保以下配置生效:

        config
        # 允许公钥认证
        PubkeyAuthentication yes
        
        # 指定公钥文件路径(默认已配置)
        AuthorizedKeysFile .ssh/authorized_keys
        
        # 禁用密码登录(可选)
        PasswordAuthentication no
        
        # 允许用户登录(可选)
        AllowUsers sshuser

      2. 重启 SSH 服务

      powershell
      Restart-Service sshd


      windows server 2019-2022 上远程备份脚本

      此脚本实现主要功能如下:

      1,打印脚本执行主机的名称

      2,打印服务器版本号

      3,打印磁盘使用率

      4 ,打印已用空间

      5,打印剩余空间

      6,磁盘使用率大于指定值,自动删除三十天之前备份

      7,当删除备份的时候,自动发送邮件,把磁盘使用率,删除的文件通过邮件发出。


      通过openssh远程备份脚本           创建定时任务脚本


  • 发表于 2025-04-27 03:05
  • 阅读 ( 74 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章