No private key is available -- это как?

Странная ситуация.
Windows 11 Pro 23H2, build 22631.5472

Для подписывания .exe / .dll / .msi на билдсервере с апреля 2024 использовался .cmd файлик, в котором есть вот такая строчка:

c:\bin\sysinternals\psexec -accepteula -nobanner -i -u builder -p user-password "c:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\%XX%\signtool.exe" sign /q /fd sha256 /f filename.cer /csp "Aktiv ruToken CSP v1.0" /kc rutoken-container-id full-pathname-for-sign

Для того чтобы запрос к рутокену всегда был от одного специального юзера.

Когда я дергаю этот скрипт в окошке cmd.exe -- все работает, и под моим аккаунтом, и под builder

но когда этот же скрипт дергает jenkins, агент которого запущен под аккаунтом этого самого builder -- выдается сообщение

SignTool Error: No private key is available.

Причем буквально вчера это работало.

Что могло измениться/слететь? pcache.txt дата/время осталось апрель 2024.

В чем такая разница, запускается через ssh соединение к Windows-машине или напрямую, учитывая что и там и там выполняется psexec?

Куда копать, что проверять? У меня идеи кончились.

Re: No private key is available -- это как?

только что проверил - если открыть cmd.exe, в нем работает.
но если я по ssh подцепляюсь к своей же машине -- то выдает ошибку.
Как с этим бороться?

Re: No private key is available -- это как?

Здравствуйте, Korsar13,
уточните, пожалуйста, ssh-сервис из-под того же пользователя работает или нет?

Re: No private key is available -- это как?

самое забавное, что если запускать батничек из Task Sheduler, выдав юзеру права на Batch Job -- то точно так же приватный ключ не находится

Re: No private key is available -- это как?

Фатеева Светлана пишет:

Здравствуйте, Korsar13,
уточните, пожалуйста, ssh-сервис из-под того же пользователя работает или нет?

ssh-сервис работает от LocalSystem
cmd.exe при ssh-логоне уже работает от конкретного пользователя.

и получается, что в окошке под моим текущим юзером -- работает.
делаю

ssh localhost

на том же ящике под тем же логином, запускаю тот же батничек -- и обламываюсь, приватный ключ не найден.

позднее попробовал -- запуск из-под Task Scheduler так же выдает "нет приватного ключа"

Re: No private key is available -- это как?

уточняю:
sshd.exe работает от имени NT AUTHORITY\SYSTEM
дочерний процесс sshd.exe -- уже от имени моего юзера
в нем запущен conhost.exe, в котором запущен cmd.exe, оба уже под моим логином

Re: No private key is available -- это как?

Korsar13,
Попробуйте в том же окружении при подключении по SSH:

1) зарегистрировать сертификат в MY и передавать его в signtool через ключ хеш-сертификата /sha1 <.....>
2) добавить в скрипт вызов signtool с флагом /debug
3) добавить в скрипт "certutil -scinfo"

Re: No private key is available -- это как?

Korsar13, уточните, удалось ли выполнить указанный запрос?
Пришлите, пожалуйста, результат вывода утилит.