網上有很多關於使用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 )