我正在嘗試透過 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 的文字檔案中