как лучше всего найти учетные данные openssh для скрипта powershell, запускаемого SYSTEM

330
Groostav

У меня есть скрипт PowerShell в виде

$commands = @" echo "1 + 2" | bc "@  $commands | ssh user@1.2.3.4 

В настоящий момент я заранее настраиваю ssh-ключи, но проблема в том, что вызывающая сторона моего скрипта - это служба, запускаемая в пользовательском пространстве SYSTEM, что, в свою очередь, означает, что ни один из моих ssh-ключей не сгенерирован. для administratorили user1234привыкать. досадно, но это фактически приводит к зависанию ssh-клиента powershell.

Какое лучшее решение, и есть ли у кого-нибудь код, чтобы начать меня?

  1. Я мог бы сделать некоторую PowerShell runasFoo, чтобы обмениваться между пользователями, чтобы дать мне своего рода "жесткую точку" пользователя для SSH
  2. Я мог бы переместить ssh-ключи из их дома по умолчанию ~/.ssh, хотя я действительно не знаю, что безопасно, а что нет.
  3. Я мог бы, при неприятных эксплуатационных затратах, прекратить использование службы с пользователем SYSTEM и пытаться запускать эту службу как пользователь каждый раз, когда я захожу в офис.

Большое спасибо!

1
Нет PowerShell SSH-клиента. Я полагаю, вы используете WSL и обычный WSL SSH? В зависимости от того, как вы запускаете этот скрипт, вы также можете просто дать ему пользователя, и вам не нужно будет запускать его вручную каждый раз, когда вы приходите в офис. [Исходя из этого] (https://docs.microsoft.com/en-us/windows/desktop/services/localsystem-account) может показаться, что дом пользователя по умолчанию должен быть его домом. Seth 5 лет назад 0
Предложение. Используйте [psexec -s] (https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) для создания или импорта ключей в системную учетную запись. harrymc 5 лет назад 1
@Seth Powershell поддерживает SSh в версии 6. https://github.com/PowerShell/Win32-OpenSSH/releases. uSlackr 5 лет назад 1
Вы смотрели использовать модуль PowerShell SSH из MS PowerShellGallery --- Find-Module -Name '* ssh *' postanote 5 лет назад 1
@uSlackr спасибо, это интересно знать. Тем не менее, если вы посмотрите на то, что делает OP, становится ясно, что он не использует командлет, а просто передает данные в порт / a OpenSSH. Модуль для ssh не содержит каких-либо функций для фактического использования SSH в PowerShell, а представляет собой просто порт SSH для Windows и модуль OpenSSHUtils. Хотя хорошо знать, что он не использует WSL. Posh-SSH - это настоящий модуль PowerShell, который позволяет использовать SSH PowerShell. Seth 5 лет назад 1
Похоже, что он может использовать проект Win32 и открыл для этого проблему на GitHub: https://github.com/PowerShell/Win32-OpenSSH/issues/1287 uSlackr 5 лет назад 1
@uSlackr это правильно, мне жаль, что я не очень хорошо знаком с ssh, и я был совершенно уверен, что я получил свой ssh-клиент с помощью chocolaty. Я сделал эту проблему, так как, IMHO, ошибка с ошибкой. Но теперь, когда вы, ребята, указали на множество различных вариантов ssh, я не уверен, что мне следует делать. Должен ли я просто удалить свою открытую установку ssh, взять пошаговый мерзавец и назвать это днем? Groostav 5 лет назад 0

0 ответов на вопрос

Похожие вопросы