[操作系統/網絡]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 參考文獻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM