Mac 或 Linux 遠程連接 Windows

使用外網穿透 ssh 命令連接 windows 時:ssh username@ip:port,提示:Connection reset by peer;
轉爲使用內網連接來查找問題,在內網中,使用 ssh 連接時,提示:Operation timed out;
接着,使用命令 ping ip 時,提示:Request timeout for icmp_seq;
google後發現是防火牆的問題,打開 windows 防火牆後, 能 ping 通,但用 ssh 連接時,提示:port 22:Connection refused.

參考博客:如何使用 SSH 控制連接 Windows 服務器 解決問題。

1. 在設置->應用->應用和功能->可選功能裏,發現只安裝了 OpenSSH Clinet,沒有安裝 OpenSSH Server,


接下來通過 shell 工具 PowerShell 來安裝 OpenSSH Server,因爲可選功能裏只有 OpenSSH Client,沒有 OpenSSH Server,

(1)在安裝 PowerShell 並用管理員啓動後(類似於 DOS 界面),輸入:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

提示:

Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

(2)用 PowerShell 安裝 OpenSSH Server:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

[如果讀條完成之後,沒反應,按回車鍵]

此時,再次輸入:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

提示:

Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

Name  : OpenSSH.Server~~~~0.0.1.0
State : Installed

表示 OpenSSH Server 安裝成功。

(3)重點來了:重啓!重啓!重啓!重要的事情說三遍,不然後續的命令都會提示找不到。

(4)在完成 OpenSSH Server 的安裝之後,用管理員打開 PowerShell 執行界面,開啓 sshd 服務(無提示):

Start-Service sshd

並設爲自動啓動(無提示):

Set-Service -Name sshd -StartupType 'Automatic'

(5)驗證防火牆是否允許 OpenSSH 服務通過:

Get-NetFirewallRule -Name *ssh*

提示:

Name                  : OpenSSH-Server-In-TCP
DisplayName           : OpenSSH SSH Server (sshd)
Description           : Inbound rule for OpenSSH SSH Server (sshd)
DisplayGroup          : OpenSSH Server
Group                 : OpenSSH Server
Enabled               : True
Profile               : Any
Platform              : {}
Direction             : Inbound
Action                : Allow
EdgeTraversalPolicy   : Block
LooseSourceMapping    : False
LocalOnlyMapping      : False
Owner                 :
PrimaryStatus         : OK
Status                : 已從存儲區成功分析規則。 (65536)
EnforcementStatus     : NotApplicable
PolicyStoreSource     : PersistentStore
PolicyStoreSourceType : Local

Enable 狀態是 True,Action 狀態是 Allow,表示允許通過,OpenSSH 可用。

2. 內網遠程連接:ssh username@ip,成功。

在安裝 OpenSSH Sever 之前,嘗試關閉 Windows 防火牆,並在防火牆高級設置中添加入站規則,允許通過 port: 22 進行連接,並沒有解決問題,安裝 OpenSSH Sever 之後,開啓防火牆,並刪除入站規則,發現不影響連接[疑惑~];之後發現是:Windows Defender 防火牆->允許應用或功能通過 Windows Defender 防火牆,其中 OpenSSH 已添加到列表。

3. 使用外網穿透連接:ssh username@ip:port,成功。

發佈了26 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章