国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何在Linux機器上使用ssh遠程連接Windows Server服務(wù)器并使用rsync同步文件

這篇具有很好參考價值的文章主要介紹了如何在Linux機器上使用ssh遠程連接Windows Server服務(wù)器并使用rsync同步文件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、源起

?? 當前在研究goploy自動化開源部署工具,該工具部署在linux機器上,而要部署服務(wù)的目標服務(wù)器有一部分是windows server服務(wù)器,goploy自動化部署,使用rsync部署方式,底層依賴于ssh遠程連接目標服務(wù)器,所以,要實現(xiàn)自動化部署,必須先實現(xiàn)ssh遠程連接目標windows server服務(wù)器。下面將依次說明具體步驟。

二、使用ssh遠程連接Windows

1.先決條件

在開始之前,計算機必須滿足以下要求:

(1)至少運行 Windows Server 2019 或 Windows 10(內(nèi)部版本 1809)的設(shè)備。

(2)PowerShell 5.1 或更高版本。

(3)作為內(nèi)置管理員組成員的帳戶。

2.先決條件檢查

若要驗證環(huán)境,請打開提升的 PowerShell 會話并執(zhí)行以下操作:
鍵入 winver.exe ,然后按 Enter 查看 Windows 設(shè)備的版本詳細信息。
運行 $PSVersionTable.PSVersion。 驗證主要版本至少為 5,次要版本至少為 1。 詳細了解如何在 Windows 上安裝 PowerShell。
運行下面的命令(PowerShell)。 當你是內(nèi)置管理員組的成員時,輸出將顯示 True。
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)

3.安裝適用于 Windows 的 OpenSSH

可以使用 Windows Server 2019 和 Windows 10 設(shè)備上的 Windows 設(shè)置安裝這兩個 OpenSSH 組件。
若要安裝 OpenSSH 組件:

(1)打開“設(shè)置”,選擇“應(yīng)用”,然后選擇“可選功能”。

(2)掃描列表,查看是否已安裝 OpenSSH。 如果未安裝,請在頁面頂部選擇“添加功能”,然后:

找到“OpenSSH 客戶端”,然后選擇“安裝”
找到“OpenSSH Server”,然后選擇“安裝”

(3)設(shè)置完成后,回到“應(yīng)用”和“可選功能”,并確認 OpenSSH 已列出。

(4)打開“服務(wù)”桌面應(yīng)用。 (選擇“開始”,在搜索框中鍵入 services.msc ,然后選擇“服務(wù)”應(yīng)用或按 ENTER。)

(5)在詳細信息窗格中,雙擊“OpenSSH SSH 服務(wù)器”。

(6)在“常規(guī)”選項卡上的“啟動類型”下拉菜單中,選擇“自動”。

(7)若要啟動服務(wù),請選擇“啟動”。

備注:
安裝 OpenSSH 服務(wù)器將創(chuàng)建并啟用一個名為 OpenSSH-Server-In-TCP 的防火墻規(guī)則。 這允許端口 22 上的入站 SSH 流量。 如果未啟用此規(guī)則且未打開此端口,那么連接將被拒絕或重置。

4.連接到 OpenSSH 服務(wù)器

Shell或PowerShell中依照下面格式“ssh domain\username@servername”輸入命令,樣例如下:

ssh administrator@192.168.13.142

正常輸入密碼即可連接上,然后就可以在控制臺輸入命令運行了。

參考鏈接:
適用于 Windows 的 OpenSSH 入門

三、OpenSSH for Windows 中基于密鑰的身份驗證

?? 下面是摘抄的ssh連接的全部內(nèi)容,如果只是關(guān)注linux使用ssh連接windows服務(wù)器,則只需要關(guān)注“部署公鑰”相關(guān)的部分。生成公私鑰可參見下面命令:

ssh-keygen -t ed25519 -C "your_email@example.com"

1.部署私鑰

PowerShell腳本說明:

# By default the ssh-agent service is disabled. Configure it to start automatically.
# Make sure you're running as an Administrator.
Get-Service ssh-agent | Set-Service -StartupType Automatic

# Start the service
Start-Service ssh-agent

# This should return a status of Running
Get-Service ssh-agent

# Now load your key files into ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

將密鑰添加到客戶端上的 ssh-agent 后,ssh-agent 會自動檢索本地私鑰并將其傳遞給 SSH 客戶端。

2.部署公鑰

?? 要使用上面創(chuàng)建的用戶密鑰,必須將公鑰 (.ssh\id_ed25519.pub) 的內(nèi)容作為文本文件放在服務(wù)器上。 文件的名稱和位置取決于用戶帳戶是本地管理員組的成員還是標準用戶帳戶。 以下部分涵蓋標準和管理用戶。特別提醒,下面的PowerShell腳本,都是需要在其他windows機器的PowerShell終端上執(zhí)行,實現(xiàn)遠程配置功能。

(1)標準用戶

?? 公鑰 (.ssh\id_ed25519.pub) 的內(nèi)容需放置在服務(wù)器上的一個名為 authorized_keys 的文本文件中,該文件位于 C:\Users\username.ssh\。 可以使用 OpenSSH scp 安全文件傳輸實用工具或使用 PowerShell 將密鑰寫入文件來復(fù)制公鑰。
以下示例將公鑰復(fù)制到服務(wù)器(其中“username”替換為你的用戶名)。 最初,你需要使用服務(wù)器的用戶帳戶的密碼。
PowerShell腳本說明:

# Get the public key file generated previously on your client
$authorizedKey = Get-Content -Path $env:USERPROFILE\.ssh\id_ed25519.pub

# Generate the PowerShell to be run remote that will copy the public key file generated previously on your client to the authorized_keys file on your server
$remotePowershell = "powershell New-Item -Force -ItemType Directory -Path $env:USERPROFILE\.ssh; Add-Content -Force -Path $env:USERPROFILE\.ssh\authorized_keys -Value '$authorizedKey'"

# Connect to your server and run the PowerShell using the $remotePowerShell variable
ssh username@domain1@contoso.com $remotePowershell

(2)管理用戶

公鑰 (.ssh\id_ed25519.pub) 的內(nèi)容需放置在服務(wù)器上的一個名為 administrators_authorized_keys 的文本文件中,該文件位于 C:\ProgramData\ssh\。 可以使用 OpenSSH scp 安全文件傳輸實用工具或使用 PowerShell 將密鑰寫入文件來復(fù)制公鑰。 此文件上的 ACL 需要配置為僅允許訪問管理員和系統(tǒng)。
以下示例將公鑰復(fù)制到服務(wù)器并配置 ACL(其中“username”替換為你的用戶名)。 最初,你需要使用服務(wù)器的用戶帳戶的密碼。
備注:此示例演示了創(chuàng)建 administrators_authorized_keys 文件的步驟。 這僅適用于管理員帳戶,并且在用戶配置文件位置內(nèi)的必須是用戶而不是每用戶文件。
PowerShell腳本說明:

# Get the public key file generated previously on your client
$authorizedKey = Get-Content -Path $env:USERPROFILE\.ssh\id_ed25519.pub

# Generate the PowerShell to be run remote that will copy the public key file generated previously on your client to the authorized_keys file on your server
$remotePowershell = "powershell Add-Content -Force -Path $env:ProgramData\ssh\administrators_authorized_keys -Value '$authorizedKey';icacls.exe ""$env:ProgramData\ssh\administrators_authorized_keys"" /inheritance:r /grant ""Administrators:F"" /grant ""SYSTEM:F"""

# Connect to your server and run the PowerShell using the $remotePowerShell variable
ssh username@domain1@contoso.com $remotePowershell

PowerShell實際樣例如下:

# Get the public key file generated previously on your client
$authorizedKey = Get-Content -Path C:\Users\tom\.ssh\id_ed25519.pub

# Generate the PowerShell to be run remote that will copy the public key file generated previously on your client to the authorized_keys file on your server
$remotePowershell = "powershell Add-Content -Force -Path $env:ProgramData\ssh\administrators_authorized_keys -Value '$authorizedKey';icacls.exe ""$env:ProgramData\ssh\administrators_authorized_keys"" /inheritance:r /grant ""Administrators:F"" /grant ""SYSTEM:F"""

# Connect to your server and run the PowerShell using the $remotePowerShell variable
ssh administrator@192.168.13.142 $remotePowershell

參考鏈接:
OpenSSH for Windows 中基于密鑰的身份驗證

四、實際驗證

上述步驟完成后,在配置好私鑰的Wndwos或Linux機器上都可以使用下面的命令ssh遠程連接Windows服務(wù)器,且不需要輸入密碼:

ssh administrator@192.168.13.142

五、配置rsync遠程同步文件

1.windows下安裝cwrsync客戶端

windows系統(tǒng)先下載cwrsync客戶端(下載鏈接),我使用的是6.2.9版本,如果兩邊機器都是windows的話,則需要都安裝cwrsync客戶端,如解壓之后統(tǒng)一放到“D:\programs\cwrsync”目錄下,
linux遠程連接windows,ssh,PowerShell,Windows,linux

2.配置系統(tǒng)環(huán)境變量

在系統(tǒng)環(huán)境變量中,添加CWRSYNC_HOME,值為“D:\programs\cwrsync”,并將“%CWRSYNC_HOME%\bin”添加進系統(tǒng)環(huán)境變量Path中,并且確保在“%SYSTEMROOT%\System32\OpenSSH\”的上面,樣例如下:
linux遠程連接windows,ssh,PowerShell,Windows,linux
確保系統(tǒng)優(yōu)先使用cwrsync自帶的ssh.exe可執(zhí)行文件。配置完畢后,遠程的windows服務(wù)器,需要重啟一下,rsync同步才會生效。

六、遠程linux服務(wù)器配置ssh遠程連接

重點是在遠程linux機器對應(yīng)帳號的.ssh文件夾下,將本機公鑰寫入authorized_keys文件中(文件屬性是600),PowerShell腳本命令如下:

$publicKey = Get-Content -Path "C:\Users\tom\.ssh\id_ed25519.pub"
ssh root@192.168.13.145 "mkdir -p ~/.ssh && echo `"$publicKey`" >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

七、rsync執(zhí)行樣例

rsync使用方法可參考rsync 用法教程。
官方幫助文檔。

1.linux向windows同步數(shù)據(jù)樣例(默認是采取ssh模式)

如果目錄不存在則先創(chuàng)建目錄

directoryPath="D:/temp/rsync/receive"
remotePowershell="powershell if (!(Test-Path -Path $directoryPath -PathType Container)) { New-Item -ItemType Directory -Force -Path $directoryPath;Write-Host ""Directory created successfully."";} else { Write-Host ""Directory already exists."";}"
# Connect to your server and run the PowerShell using the $remotePowerShell variable
ssh administrator@192.168.13.180 $remotePowershell

從本地同步數(shù)據(jù)到遠端

rsync -e ssh -avn /root/backup/goploy/ administrator@192.168.13.180:/cygdrive/D/temp/rsync/receive
rsync -avz /root/backup/goploy/ administrator@192.168.13.180:/cygdrive/D/temp/rsync/receive
rsync -e ssh -avz /root/backup/goploy/ administrator@192.168.13.180:/cygdrive/D/temp/rsync/receive
rsync -e ssh -avzn /root/backup/goploy/ administrator@192.168.13.180:/cygdrive/D/temp/rsync/receive

2.windows向linux同步數(shù)據(jù)樣例

使用ssh輸入密碼方式遠程連接目標linux機器并配置公鑰PowerShell樣例如下:

$publicKey = Get-Content -Path "C:\Users\tom\.ssh\id_ed25519.pub"
ssh root@192.168.13.190 "mkdir -p ~/.ssh && echo `"$publicKey`" >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

下面是將整個F:\temp\apk文件夾同步到無端/root/temp/what文件夾下:

ssh root@192.168.13.190 "[ ! -d /root/temp/what ] && mkdir -p /root/temp/what || echo 'already exists'"
rsync -r /cygdrive/F/temp/apk root@192.168.13.190:/root/temp/what

做整體同步:

rsync -avz /cygdrive/F/temp/apk/ --delete root@192.168.13.190:/root/temp/what

反過來,從遠程服務(wù)器拷貝文件到本地(將/root/temp/what目錄整體拷貝到本地):

rsync -avz root@192.168.13.190:/root/temp/what --delete /cygdrive/F/temp/apk_receive

2.windows向windows同步數(shù)據(jù)樣例

先創(chuàng)建文件夾,再同步數(shù)據(jù):

$directoryPath = "tom\storage"
$remotePowershell = "powershell if (!(Test-Path -Path $directoryPath -PathType Container)) { New-Item -ItemType Directory -Force -Path $directoryPath;Write-Host ""Directory created successfully."";} else { Write-Host ""Directory already exists."";}"
# Connect to your server and run the PowerShell using the $remotePowerShell variable
ssh administrator@192.168.13.180 $remotePowershell

同步數(shù)據(jù)樣例:
rsync -avz -e ssh -vvv /local/path username@remotehost:/remote/path文章來源地址http://www.zghlxwxcb.cn/news/detail-753834.html

rsync -avz -e ssh -vvv /cygdrive/F/temp/apk --delete administrator@192.168.13.180:/cygdrive/D/temp/apk
rsync -avz -e ssh -vvv /cygdrive/F/temp/apk administrator@192.168.13.180:/cygdrive/D/temp/apk
rsync -avz /cygdrive/F/temp/apk administrator@192.168.13.180:/cygdrive/D/temp/apk

到了這里,關(guān)于如何在Linux機器上使用ssh遠程連接Windows Server服務(wù)器并使用rsync同步文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Windows 系統(tǒng)下:SSH 遠程連接 Linux 服務(wù)器的完整指南

    Windows 系統(tǒng)下:SSH 遠程連接 Linux 服務(wù)器的完整指南

    以下是使用 Windows 系統(tǒng)的 SSH 遠程連接 Linux 服務(wù)器的詳細操作步驟,(我們以 Ubuntu 和CentOS 為例) 1. 確保 Linux 服務(wù)器已啟用 SSH 首先,確保您的 Linux 服務(wù)器上已經(jīng)安裝并運行了 SSH 服務(wù)。對于大多數(shù) Linux 發(fā)行版, OpenSSH 是默認的 SSH 服務(wù)器。您可以使用以下命令來安裝它: ?

    2024年02月08日
    瀏覽(39)
  • 【VsCode遠程開發(fā)】Windows SSH遠程連接Linux服務(wù)器 - 無公網(wǎng)IP內(nèi)網(wǎng)穿透

    【VsCode遠程開發(fā)】Windows SSH遠程連接Linux服務(wù)器 - 無公網(wǎng)IP內(nèi)網(wǎng)穿透

    轉(zhuǎn)發(fā)自CSDN遠程穿透的文章:【vscode遠程開發(fā)】使用SSH遠程連接服務(wù)器 「內(nèi)網(wǎng)穿透」 遠程連接服務(wù)器工具有很多,比如XShell、putty等,可以通過ssh來遠程連接服務(wù)器,但這用于寫代碼并不方便,可能需要現(xiàn)在本地寫好代碼后再將源代碼傳送到服務(wù)器運行、服務(wù)器上的圖片也無

    2024年02月02日
    瀏覽(31)
  • Windows SSH遠程連接Linux服務(wù)器 - 無公網(wǎng)IP內(nèi)網(wǎng)穿透

    Windows SSH遠程連接Linux服務(wù)器 - 無公網(wǎng)IP內(nèi)網(wǎng)穿透

    轉(zhuǎn)發(fā)自CSDN遠程穿透的文章:【vscode遠程開發(fā)】使用SSH遠程連接服務(wù)器 「內(nèi)網(wǎng)穿透」 遠程連接服務(wù)器工具有很多,比如XShell、putty等,可以通過ssh來遠程連接服務(wù)器,但這用于寫代碼并不方便,可能需要現(xiàn)在本地寫好代碼后再將源代碼傳送到服務(wù)器運行、服務(wù)器上的圖片也無

    2024年02月04日
    瀏覽(35)
  • 如何通過ssh遠程連接自己的主機(Linux)?

    如何通過ssh遠程連接自己的主機(Linux)?

    可以看到,有多塊網(wǎng)卡在工作,其中eno1是有線網(wǎng)卡,UP表示開啟了,但沒有運行(RUNNING),因為此時主機并沒有連接有線網(wǎng)絡(luò)。 lo是本地虛擬網(wǎng)卡,所有設(shè)備都為127.0.0.1,可以在沒有網(wǎng)絡(luò)的環(huán)境中用來測試。 wlp4s0是無線網(wǎng)卡,它被開啟(UP),且正在工作(RUNNING)。第二行

    2024年02月04日
    瀏覽(23)
  • 使用 FinalShell 進行遠程連接(ssh 遠程連接 Linux 服務(wù)器)

    使用 FinalShell 進行遠程連接(ssh 遠程連接 Linux 服務(wù)器)

    目錄 前言 基本使用教程 新建遠程連接 連接主機 自定義命令 路由追蹤 后端開發(fā),必然需要和服務(wù)器打交道,部署應(yīng)用,排查問題,查看運行日志等等。一般服務(wù)器都是集中部署在機房中,也有一些直接是云服務(wù)器,總而言之,程序員不可能直接和服務(wù)器直接操作,一般都是

    2024年04月16日
    瀏覽(36)
  • 如何實現(xiàn)固定公網(wǎng)地址遠程SSH連接Linux Deepin系統(tǒng)

    如何實現(xiàn)固定公網(wǎng)地址遠程SSH連接Linux Deepin系統(tǒng)

    Deepin操作系統(tǒng)是一個基于Debian的Linux操作系統(tǒng),專注于使用者對日常辦公、學(xué)習(xí)、生活和娛樂的操作體驗的極致,適合筆記本、桌面計算機和一體機。是中國第一個具備國際影響力的Linux發(fā)行版本,支持33種語言,用戶遍布除了南極洲的其它六大洲。 下面介紹簡單幾步結(jié)合Cp

    2024年03月16日
    瀏覽(21)
  • 「遠程開發(fā)」VSCode使用SSH遠程linux服務(wù)器 - 公網(wǎng)遠程連接

    「遠程開發(fā)」VSCode使用SSH遠程linux服務(wù)器 - 公網(wǎng)遠程連接

    轉(zhuǎn)發(fā)自cpolar內(nèi)網(wǎng)穿透的文章:【Vscode遠程開發(fā)】使用SSH遠程連接服務(wù)器 「內(nèi)網(wǎng)穿透」 遠程連接服務(wù)器工具有很多,比如XShell、putty等,可以通過ssh來遠程連接服務(wù)器,但這用于寫代碼并不方便,可能需要現(xiàn)在本地寫好代碼后再將源代碼傳送到服務(wù)器運行、服務(wù)器上的圖片也無

    2024年02月06日
    瀏覽(32)
  • VSCode使用Remote SSH遠程連接Linux服務(wù)器【遠程開發(fā)】

    VSCode使用Remote SSH遠程連接Linux服務(wù)器【遠程開發(fā)】

    轉(zhuǎn)發(fā)自CSDN遠程穿透的文章:【vscode遠程開發(fā)】使用SSH遠程連接服務(wù)器 「內(nèi)網(wǎng)穿透」 遠程連接服務(wù)器工具有很多,比如XShell、putty等,可以通過ssh來遠程連接服務(wù)器,但這用于寫代碼并不方便,可能需要現(xiàn)在本地寫好代碼后再將源代碼傳送到服務(wù)器運行、服務(wù)器上的圖片也無

    2023年04月21日
    瀏覽(30)
  • 如何在Linux Archcraft中配置SSH服務(wù)并結(jié)合內(nèi)網(wǎng)穿透實現(xiàn)遠程連接

    如何在Linux Archcraft中配置SSH服務(wù)并結(jié)合內(nèi)網(wǎng)穿透實現(xiàn)遠程連接

    Archcraft是一個基于Arch Linux的Linux發(fā)行版,它使用最簡主義的窗口管理器而不是功能齊全的桌面環(huán)境來提供圖形化用戶界面。 Cpolar是一種安全的內(nèi)網(wǎng)穿透云服務(wù),可以將內(nèi)網(wǎng)下的本地服務(wù)器通過安全隧道暴露至公網(wǎng),使得公網(wǎng)用戶可以正常訪問內(nèi)網(wǎng)服務(wù),是一款內(nèi)網(wǎng)穿透軟件。

    2024年03月18日
    瀏覽(35)
  • 如何在Windows通過固定tcp公網(wǎng)地址ssh遠程訪問本地Kali Linux

    如何在Windows通過固定tcp公網(wǎng)地址ssh遠程訪問本地Kali Linux

    本文主要介紹如何在Kali系統(tǒng)編輯SSH配置文件并結(jié)合cpolar內(nèi)網(wǎng)穿透軟件,實現(xiàn)公網(wǎng)環(huán)境ssh遠程連接本地kali系統(tǒng)。 默認新安裝的kali系統(tǒng)會關(guān)閉ssh 連接服務(wù),我們通過命令打開: 啟動后我們查看ssh 狀態(tài),active 表示ssh 正常運行 通常ssh 是使用賬號或者密碼進行登錄連接,所以還需要開

    2024年04月23日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包