Windows service開啟ssh服務,免密登入
阿新 • • 發佈:2022-12-02
安裝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
相關來源: