certutil über ssh (RPC-Server ist nicht verfügbar)

certutil über ssh (RPC-Server ist nicht verfügbar)

Beim Ausführen einer certutilAnfrage von einer lokalen Powershell ist alles in Ordnung.

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>

Wenn wir dasselbe von einem per OpenSSH verbundenen Linux-Host aus mit demselben Windows-Server tun, wird eine Fehlermeldung angezeigt.

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>

Irgendwelche Ideen, was falsch daran ist, eine Verbindung über SSH herzustellen und dann den Befehl auszuführen, wobei beides von einer lokalen Powershell aus ausgeführt wird?

Antwort1

Das Problem ist hier die Authentifizierung mit einem SSH-Schlüssel. Wenn Sie dies tun, können Sie keine weitere Authentifizierung verwenden, die vom certutilund damit vom RPC-Dienst benötigt wird. Dieses Verhalten ist von MS etwas versteckt dokumentiert.

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

Einer Remote-Sitzung, die über eine schlüsselbasierte Authentifizierung geöffnet wird, sind keine Benutzeranmeldeinformationen zugeordnet und sie kann sich daher nicht als Benutzer ausgehend authentifizieren. Dies ist so beabsichtigt.

Wenn Sie also eine weitere Authentifizierung gegenüber dem MS-Ökosystem benötigen, können Sie keine schlüsselbasierte Authentifizierung verwenden. Sie müssen für SSH Benutzernamen und Passwort verwenden.

verwandte Informationen