網上有很多關於使用win10-ssh客戶端登入linux-ssh服務端的介紹,但很少介紹多臺win10-ssh服務端之間互訪的。以下記錄如何免密登入win10-ssh服務
- 根據微軟文件描述,適用於Windows 10 1809 或 Windows Server 2019以上版本
- 以下內容如果無特別說明,在遠端Windows主機上操作
安裝OpenSSH Server
圖形介面
點開 設定 -> 應用 -> 應用與功能 -> 可選功能
點選 新增功能 後跳出對話方塊,輸入”ssh”,勾選安裝”OpenSSH 伺服器”
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*
- 確認
OpenSSH-Server-In-TCP
狀態是enabled
- 至此可以在本地嘗試
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