無法使用公鑰身份驗證透過 SSH 連線到 Windows

無法使用公鑰身份驗證透過 SSH 連線到 Windows

我正在嘗試透過 SSH 使用公鑰身份驗證連接到 Windows。但顯然不起作用。

這是我所做的。

我在Windows上安裝並啟動了SSH。

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

我生成了公鑰文件並將其發送到遠端電腦以進行 ssh。

ssh-keygen

我在 SSH 設定檔“C:\ProgramData\ssh\sshd_config”中更改/新增了以下行

PermitRootLogin yes
AllowUsers otheruser
PubkeyAuthentication yes
PasswordAuthentication no

我重新啟動了 ssh 伺服器以應用設定變更。

net stop sshd ; net start sshd

我嘗試從遠端電腦(還有Windows、PowerShell)透過ssh連接到Windows計算機

ssh -i C:\_sync_\id_rsa [email protected]

並失敗了。

> ssh -i C:\_sync_\id_rsa [email protected]
[email protected]: Permission denied (publickey,keyboard-interactive).

那麼,如何解決這個SSH公鑰認證問題呢?

答案1

透過 SSH 連接到 Windows 有點浪費時間。他們的文件https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement已經過時了https://github.com/MicrosoftDocs/windowsserverdocs/issues/4598不幸的是,不再起作用了。

如果您使用的是 Windows 10,我建議您在 Windows 10 上使用 WSL Linux。 WSL SSHing 的工作效果與您在 Linux 機器上的工作效果一樣好。

答案2

Windows 似乎需要不同的authorized_keys文件,這取決於您是標準使用者還是管理使用者。

截至 2024 年 4 月 15 日,有提及 OpenSSH for Windows文件這說(對於行政的用戶):

您的公鑰 (.ssh\id_ed25519.pub) 的內容需要放在伺服器上的 C:\ProgramData\ssh\ 中名為administrators_authorized_keys 的文字檔案中

相關內容