[操作系统/网络]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 Files\OpenSSH)
    不要放在别的路径下,微软官方的要求.

解压后,即可直接使用 ssh客户端了,但是如果需要开启 sshd 服务端程序,则必须继续进行安装操作。

  • step3 CMD管理员模式下安装
    CMD管理员模式,切换到OpenSSH安装路径下,依次执行:
    [切换到安装目录]
C:
cd C:\Program Files\OpenSSH

[安装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 Files\OpenSSH添加到path中,免得每次都要切到C:\Program Files\OpenSSH才能使用ssh

在系统环境变量PAHT中添加: 
    ;C:\Program Files\OpenSSH

[配置开机自启sshd服务]

sc config sshd start= auto

[启动OpenSSH服务]

net start sshd

到此就安装完成

测试安装是否成功

[Windows上连接Linux]

Windows CMD: ssh root@192.168.2.110

Windows CMD: scp C:\Users\Johnny\Desktop\debug.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 参考文献

posted @ 2021-01-08 17:24  千千寰宇  阅读(4326)  评论(0编辑  收藏  举报