certutil через ssh (RPC-сервер недоступен)

certutil через ssh (RPC-сервер недоступен)

При выполнении certutilзапроса из локального PowerShell все в порядке.

PS C:\Users\admuser> certutil -ping -config 'caserver\ca'
Connecting to caserver\ca ...
Server "ca" ICertRequest2 interface is alive (32ms)
CertUtil: -ping command completed successfully.
PS C:\Users\admuser>

Выполняя то же самое с хоста Linux, подключенного через OpenSSH к тому же серверу Windows, мы получаем ошибку.

PS C:\Users\admuser> certutil -ping -config 'caserver\ca'
Connecting to caserver\ca ...
Server could not be reached: The RPC server is unavailable. 0x800706ba (WIN32: 1722 RPC_S_SERVER_UNAVAILABLE) -- (16ms)

CertUtil: -ping command FAILED: 0x800706ba (WIN32: 1722 RPC_S_SERVER_UNAVAILABLE)
CertUtil: The RPC server is unavailable.
PS C:\Users\admuser>

Есть идеи, что не так с подключением по SSH и последующим выполнением команды, если оба варианта выполняются из локальной оболочки PowerShell?

решение1

Проблема здесь в аутентификации с помощью ключа ssh. Если вы это сделаете, вы не сможете использовать дальнейшую аутентификацию, которая требуется для certutilи, следовательно, для службы RPC. Это поведение несколько скрыто, задокументировано MS.

https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement

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

Так что если вам нужна дополнительная аутентификация против экосистемы MS, вы не сможете использовать аутентификацию на основе ключей. Вам придется использовать имя пользователя и пароль для ssh.

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