1. 程式人生 > 其它 >多臺WIN10之間的SSH免密登入

多臺WIN10之間的SSH免密登入

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

1、安裝OpenSSH。

網上有很多介紹通過新增win10可選功能安裝openssh,此處不贅述。如果通過新增可選功能出現安裝失敗,可以下載openssh自行安裝。

下載地址:PowerShell/Win32-OpenSSH

注意:最好不要安裝在C:\Users\your_userName\ 下面,不然會出現一些問題,建議直接解壓到到C盤下C:\OpenSSH,並將該路徑新增至環境變數Path。

開始安裝:

以管理員身份開啟powershell,切換至C:\OpenSSH(如果有新增環境變數則隨意位置)。

set-executionpolicy remotesigned
cd C:\OpenSSH
以下安裝命令需要在執行第一條命令後才能執行,不然會報錯
 .\install-sshd.ps1

安裝完畢。

2、開啟ssh服務

Start-Service sshd

也可以使用net start sshd 啟動,其他相關命令如下:

檢視狀態:Get-Service sshd
關閉服務:Stop-Service sshd
重啟服務:Restart-Service sshd

確保防火牆關閉或防火牆有放開22埠。

從其他主機(客戶端) ssh your_userName@your_IP_Adress 測試是否正常連線,預設需要輸入密碼登入。

3、開啟免密登入

先在本地(客戶端)生成公鑰,當然,本地也是需要安裝openssh。

ssh-keygen -t rsa

切換到路徑:C:\Users\your_userName\.ssh,找到公鑰檔案id_rsa.pub。

複製公鑰檔案內容,到服務端C:\Users\your_userName\.ssh下建立檔案authorized_keys(沒有檔案字尾),貼上公鑰,儲存退出。

服務端切換到C:\ProgramData\ssh\下(首次啟動sshd後會生成該資料夾),開啟sshd_config檔案,

修改檔案(以下是重點):

確保以下3條沒有被註釋
PubkeyAuthentication yes
AuthorizedKeysFile	.ssh/authorized_keys
PasswordAuthentication no

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

其餘不做修改,基本都是已註釋不啟用。

重啟服務:Restart-Service sshd

4、測試登入

回到客戶端 ssh your_userName@your_IP_Adress,此時無需密碼直接登入說明正常(首次登陸可能會提示是否加入known_hosts,yes即可)。如果是多臺win10主機互相免密,操作同上,不過需要每臺主機的authorized_keys都需要包含其他主機公鑰,即包含多條公鑰記錄。

參考

[多臺WIN10之間的SSH免密登入 - 知乎](https://zhuanlan.zhihu.com/p/111812831 )