.png)
При выполнении 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.