1. 程式人生 > 其它 >Windows service開啟ssh服務,免密登入

Windows service開啟ssh服務,免密登入

安裝ssh客戶端、服務端

安裝完成後,在搜尋框中輸入cmd,在彈出視窗選擇【以管理員身份執行】。執行“net start sshd”命令,啟動SSH服務。

同時按下【WIN】和【R】鍵,開啟【執行】視窗,輸入“services.msc”,開啟服務管理控制檯。 

 在【Windows服務管理器】頁面,找到“OpenSSH SSH Server”,雙擊該選項,在彈出的屬性視窗頁面,把啟動型別配置為“自動”。

# 啟動sshd服務
Start-Service sshd
 
# 將sshd服務設定為自動啟動,若不設定需要在每次重啟後重新開啟sshd
Set-Service -Name sshd -StartupType 'Automatic'
 
# 確認防火牆規則,一般在安裝時會配置好
Get-NetFirewallRule -Name *ssh*
 
# 若安裝時未新增防火牆規則"OpenSSH-Server-In-TCP",則通過以下命令新增
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

  

# 確保伺服器上存在.ssh 資料夾,若不存在則使用下面命令建立
ssh username@ip mkdir C:\Users\username\.ssh\
 
#通過scp將本地的公鑰上傳到伺服器上並重命名為authorized_keys,注意此方法會覆蓋原有authorized_keys
scp C:\Users\username\.ssh\id_rsa.pub user1@ip:C:\Users\username\.ssh\authorized_keys

  

# 遠端通過ACL更改檔案許可權
ssh --% user1@ip icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"

  

#在伺服器端修改authorized_keys檔案許可權
icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"

  在Windows OpenSSH中,預設的授權金鑰存放位置為ProgramData\ssh\administrators_authorized_keys,此位置對應為管理使用者許可權。因此需要修改預設授權檔案位置。通過文字編輯器(推薦vscode)開啟ProgramData\ssh\sshd_config,修改以下條目

#允許公鑰授權訪問,確保條目不被註釋
PubkeyAuthentication yes
 
#授權檔案存放位置,確保條目不被註釋
AuthorizedKeysFile	.ssh/authorized_keys
 
#可選,關閉密碼登入,提高安全性
PasswordAuthentication no
 
#註釋掉預設授權檔案位置,確保以下條目被註釋
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

  

在PowerShell(管理員)中重啟sshd服務

#重啟sshd,需要管理員許可權 Restart-Service sshd

設定埠轉發 C:\ProgramData\ssh

AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes

  

  解除安裝方式:!!!

# 解除安裝 OpenSSH 客戶端
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
 
# 解除安裝 OpenSSH 服務端
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

相關來源:

1、ssh遠端連線windows

2、windows中ssh配置