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