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.