Невозможно подключиться по SSH к Windows с аутентификацией с открытым ключом

Невозможно подключиться по SSH к Windows с аутентификацией с открытым ключом

Я пытаюсь подключиться к Windows через SSH с аутентификацией по открытому ключу. Но, видимо, не работает.

Вот что я сделал.

Я установил и активировал SSH на Windows.

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

Я попробовал подключиться по ssh с удаленной машины (также windows, powershell) к машине 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, я предлагаю использовать WSL Linux на вашем Windows 10. Это по сути машина Linux на Windows, но также доступна функция SSH. WSL SSHing работает отлично, так же хорошо, как вы можете это сделать на машине Linux.

решение2

Похоже, Windows требует разные authorized_keysфайлы в зависимости от того, являетесь ли вы обычным или административным пользователем.

По состоянию на 15 апреля 2024 года есть упоминание об OpenSSH для Windowsдокументациячто говорит (дляАдминистративныйпользователи):

Содержимое вашего открытого ключа (.ssh\id_ed25519.pub) необходимо поместить на сервер в текстовый файл с именем administrators_authorized_keys в C:\ProgramData\ssh\

Связанный контент