Рейтинг:2

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

флаг cn

Я хочу SSH с моего ноутбука (А) на сервер Windows (Б) и запускать команды для SQL Server (С) из пауэршелла. Все три в одном домене windows. Я использую встроенный сервер и клиент openssh для Windows Server 2019.

Если я подключаюсь к серверу Б используя пароль, я могу запускать команды, используя Invoke-Sqlcmd и запрос SQL Server С просто хорошо.

Но если я подключаюсь с помощью ключа RSA, я больше не могу запускать команды, потому что SQL Server выдает ошибку, что я не аутентифицирован. Пробовал ключ с парольной фразой и без нее, сохранял в агенте и предоставлял явно как администратору, так и обычному пользователю. Что еще я могу попробовать?

введите описание изображения здесь

Из того, что я нашел в Интернете, это можно решить, добавив SPN. Но они у меня уже есть для сервера С.

SPN для сервера c

Любые другие подсказки? Или невозможно правильно аутентифицироваться с помощью ключей?

sarlacii avatar
флаг gb
Привет, возможна проблема с поддерживаемыми типами ключей? Попробуйте сгенерировать пару ключей ed25519, скопируйте ключ pub на компьютер с Windows так же, как и раньше, а затем укажите ключ ed25519 вместо ключа rsa для аутентификации. Тот же результат? См. [openssh_keymanagement](https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement).
Mak Sim avatar
флаг cn
@sarlacii Нет, с ed25519 тоже не работает
Nikita Kipriyanov avatar
флаг za
Ключ SSH, по сути, является аутентификатором «одного перехода»: система, в которой вы его разместили, аутентифицирует вас, но не может доказать вашу подлинность кому-либо еще. Аутентификация на основе ключа SSH не устанавливает билеты Kerberos и/или другие стандартные учетные данные Windows SSO, которые SQL-сервер ожидает увидеть для вашей аутентификации.
Рейтинг:1
флаг cn

я нашел отвечать.

  • Удаленный сеанс, открытый с помощью аутентификации по паролю, имеет прикрепленные к нему учетные данные пользователя и, следовательно, может выполнять исходящие вызовы. авторизация в качестве пользователя.
  • Удаленный сеанс, открытый с помощью аутентификации на основе ключа, не имеет связанных учетных данных пользователя и, следовательно, не может выполнять исходящие вызовы. авторизация в качестве пользователя. Это задумано и соответствует правилам Стандартная безопасность Windows.

Я надеялся использовать авторизацию по ключу для автоматизации, чтобы избежать ручного ввода пароля, но, поскольку стандартный клиент Windows openssh не поддерживает эту функцию, вместо этого мне пришлось бы использовать plink.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.