通過以前的各類遠程管理方法,Windows Server能夠被很好的管理,也能符合大多數Windows管理員的使用習慣。不過既然是命令行版本的Windows能不能和Linux同樣管理呢?Windows上啓用SSH服務。
爲了符合Linux的管理方式,那麼就須要在Windows上啓用SSH服務。微軟官方也給出瞭如何在Windows Server上使用OpenSSH管理的方法。
OpenSSH in Windows
https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_overviewshell
官方文章中有不少實用的步驟,可是在操做過程當中我也遇到了一些問題。最終本身摸索着解決了。windows
首先,咱們要安裝OpenSSH服務器端。可使用Powershell命令來檢查公網倉庫中的軟件包。
Get-WindowsCapability -Online | ? Name -Like '*SSH'
SSH 先後均可以有星號
若是看不到圖,請點我。
能夠看到有服務器和客戶端2個包,其中客戶端的已經裝好了。知道了包的名字,咱們就能夠安裝了。
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
很快,就能看到OpenSSH Server被裝好了。
接下去,就是須要啓用服務並在防火牆中放行TCP 22。這裏,咱們使用Admin Center的方式啓用服務並啓用防火牆規則。其中防火牆規則是自動建立的,只須要啓用它就餓能夠了。因爲咱們最終須要經過密鑰的方式登陸系統,因此須要將ssh-agent服務也啓動。並將他們的啓動類型都改爲自動。
到這裏,就能夠直接使用SSH鏈接到服務器了,可使用密碼登陸了。可是爲了方便統一登陸管理,最終目標是使用密鑰的方式登陸。
sshd的配置文件在C:\ProgramData\ssh目錄下。編輯sshd_config,去掉PubkeyAuthentication yes前面的註釋。而後在C:\Users\Administrator下創建文件夾.ssh,而且將公鑰文件複製過去,名字改爲authorized_keys。若是是Linux服務器,這樣就能夠用本地的私鑰登陸了。可是這個Windows服務器就是不行,仍是會提示輸入密碼。試過大寫A Administrator 小寫a administrator,都不能夠。試着按官方文章中的方法修復authorized_keys文件的權限也沒用。
接下來,試着從Linux主機複製公鑰到服務器上,結果發現用戶配置文件.ssh目錄下並無。
通過反覆測試發現文件都被上傳在了C:\Users\Administrator目錄下。
後來發現是因爲路徑的問題,Linux使用/而Windows使用\。從新用/做爲路徑以後就能夠了。
scp id_rsa.pub administrator@ip:c:/users/administrator/.ssh/authorized_keys
以後就能夠直接使用密鑰登陸系統了。
關於文件的權限,也並不須要按官方文章中提到的修復權限。
我服務器上文件的權限如圖所示。服務器