使用SSH管理Windows

ももねこ發表於2023-03-22

網上有很多關於使用win10-ssh客戶端登入linux-ssh服務端的介紹,但很少介紹多臺win10-ssh服務端之間互訪的。以下記錄如何免密登入win10-ssh服務

  • 根據微軟文件描述,適用於Windows 10 1809 或 Windows Server 2019以上版本
  • 以下內容如果無特別說明,在遠端Windows主機上操作

安裝OpenSSH Server

圖形介面

點開 設定 -> 應用 -> 應用與功能 -> 可選功能

image

點選 新增功能 後跳出對話方塊,輸入”ssh”,勾選安裝”OpenSSH 伺服器”

image

PowerShell方式

以下操作需要管理員許可權

確認OpenSSH可用於安裝

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

輸出以下內容

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

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

安裝OpenSSH Server

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

輸出以下內容

Path          :
Online        : True
RestartNeeded : False

OpenSSH Server 服務配置

以下操作需要管理員許可權

服務、防火牆相關

# 開啟服務
Start-Service sshd

# 設定自啟動
Set-Service -Name sshd -StartupType 'Automatic'

# 檢視狀態
Get-Service sshd

#關閉服務
Stop-Service sshd

# 重啟服務
Restart-Service sshd

# 確認防火牆是放開的
Get-NetFirewallRule -Name *ssh*
  1. 確認OpenSSH-Server-In-TCP狀態是enabled
  2. 至此可以在本地嘗試ssh username@ip連線到遠端機器

配置金鑰免密登入

↓本地執行

# 生成金鑰對
ssh-keygen -t rsa

# 找到公鑰檔案,複製內容備用
# Windows
# %HOMEPATH%\.ssh\id_rsa.pub
# Linux
# $HOME/.ssh/id_rsa.pu

↑本地執行 | 遠端執行↓

開啟檔案%HOMEPATH%\.ssh\authorized_keys
把公鑰檔案新增到上述檔案末尾
修改檔案C:\ProgramData\ssh\sshd_config,內容如下
重啟服務Restart-Service sshd

C:\ProgramData\ssh\sshd_config
確保以下3條沒有被註釋
PubkeyAuthentication yes
AuthorizedKeysFile    .ssh/authorized_keys

確保以下2條有註釋掉
# Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

(可選)配置PowerShell作為SSH連線預設SHELL

# 管理員執行
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Restart-Service sshd

參考連結

適用於 Windows 10 1809 和 Server 2019 的 OpenSSH 伺服器配置

相關文章