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
