• [操作系统/网络]Windows安装Openssh(scp / ssh等)


    1 文由

    由于项目有这么一个数据同步需求:

    • 【业务建设系统方】Linux上将Oracle全量数据(.dmp文件)定时推送到【大数据平台建设方】中的一台Linux服务器上;
    • 然后,【大数据平台建设方】再将dmp文件(通过sshpass和openssh的ssh/scp制作定时传输脚本将)数据传输到一台安装有Oracle的Windows的服务器上

    那么,就涉及到一个问题,Windows上需要提供ssh服务。

    2 Windows安装Openssh(客户端+服务端)

    2.1 Windows 10系统

    如果你的电脑是Win10系统,则: 微软将openssh的客户端已【预安装】在Windows10操作系统内了;

    [查看方法]
    Windows 所有设置>应用>可选功能>OpenSSH客户端
    

    但是,Windows10并没有【预安装】openssh的服务端,但安装起来也很容易:

    [安装操作方法]
    Windows 所有设置>应用>可选功能>添加功能>(选择)OpenSSH服务端
    

    安装好以后,就可以看到OpenSSH的客户端+服务端全家桶了。

    2.2 Windows Server 2008/ Windows 7/ Windows 8等

    PowerShell

    这些低于Windows 10 版本的设备怎么安装Openssh呢?

    别急,方法自然有:需借助Windows的Powershell来实现对OpenSSH的安装

    • [Powershell:简介]
      Powershell(Windows Powershell)是Microsoft为Windows设计的新的命令行程序,这个Windows内置的命令行shell包括交互式提示和脚本环境,它们可以独立使用也可以交互使用。

      indows PowerShell® 是基于任务的命令行管理程序和脚本语言,专为进行系统管理而设计。

      在 .NET Framework 的基础上构建的 Windows PowerShell 可帮助 IT 专业人士和高级用户控制和自动执行 Windows 操作系统以及在 Windows 上运行的应用程序的管理。

      UNIX 系统一直有着功能强大的脚本(shell),Windows PowerShell 的诞生就是要提供功能相当于 UNIX 系统 BASH 的命令行外壳程序,同时也内建脚本语言以及辅助脚本程序的工具。

    • [Powershell:操作系统兼容性]
      在2002年,微软开始研究一个新的产品叫做”Monad”,第一个公开测试版本是在2005年6月发布的,到2006年4月,微软把它重新命名为Windows PowerShell。从2006年微软正式发布Windows PowerShell 1.0以来,目前已经更新到了5.1版本。各个版本的相关信息如下:

    从图中显而易见的是:Server OS版始于2006年11月发行的Windows Server 2008,普通 OS版始于2009年8月的Windows 7
    Windows Server 2008 Powershell是系统中的一个新功能,自Server 2008开始之后的所有Windows系统中都集成了Powershell程序。在Windows Serve 2008 R2中,一个重要改进就是PowerShell版本升级为2.0。Win 2008 R2包括一系列新的服务器管理界面,这些均建立在PowerShell 2.0之上。

    安装步骤

    阶段1:安装OpenSSH

    • step1 下载安装包(OpenSSH-Win64.zip)
    https://github.com/PowerShell/Win32-OpenSSH/releases - github
        https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.1.0.0p1-Beta/OpenSSH-Win64.zip
    
    或
    
    https://pan.baidu.com/s/19V2W_e1Agl4GSouW6U3JAQ 提取码: xgjp 	
    
    • step2 解压到指定目录(C:Program FilesOpenSSH)
      不要放在别的路径下,微软官方的要求.
    • step3 CMD管理员模式下安装
      CMD管理员模式,切换到OpenSSH安装路径下,依次执行:
      [切换到安装目录]
    C:
    cd C:Program FilesOpenSSH
    

    [安装sshd服务]

    powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
    

    [开放22号端口]

    (如果你在windows关闭了防火墙并配置了入站规则可以不执行如下命令,多执行不影响)

    netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
    

    [配置OpenSSH系统环境变量(PATH)]
    将C:Program FilesOpenSSH添加到path中,免得每次都要切到C:Program FilesOpenSSH才能使用ssh

    在系统环境变量PAHT中添加: 
        ;C:Program FilesOpenSSH
    

    [配置开机自启sshd服务]

    sc config sshd start= auto
    

    [启动OpenSSH服务]

    net start sshd
    

    到此就安装完成

    测试安装是否成功

    [Windows上连接Linux]

    Windows CMD: ssh root@192.168.2.110
    
    Windows CMD: scp C:UsersJohnnyDesktopdebug.log Johnny@192.168.1.52:/C:/Users/Johnny/Desktop/A
    (将Windows下的一份文件传输到Windows服务器的指定目录中)
    

    [Linux上连接Windows]

    
    [root@sdc01 ~]# ssh @10.100.xx.yy
    

    通过预置密钥对,开启免密登录

    ssh出于安全考虑,每次连接都会提示输入密码,为了避免麻烦,就要配置密钥对。

    • step1 生成密钥对

    这里采用rsa算法,你也可以使用其他算法,但dsa默认不支持,这里是个坑,最好生成rsa密钥,ssh支持,随自己吧

    ssh-keygen -t rsa
    
    • step2 将公钥(id_rsa.pub)传到远程主机的~/.ssh目录下,重命名文件名为authorized_keys
    • step3 修改远程主机sshd_config配置,重启sshd服务
    vim /etc/ssh/sshd_config
        PubkeyAuthentication yes
        StrictModes no
    
    systemctl restart sshd
    
    • step4 [测试]cmd直连远程linux

    X 参考文献

  • 相关阅读:
    usaco-3.2-butter-passed
    usaco-3.2-msquare-pass
    usaco-3.2-ratios-pass
    usaco-3.2-spin-pass
    usaco-3.2-kimbits-pass
    usaco-3.2-fact4-pass
    usaco-3.1-stamps-pass
    usaco-3.1-contact-pass
    git操作
    spring 用到的设计模式
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/14252485.html
Copyright © 2020-2023  润新知