So ermitteln Sie am besten die Opensh-Anmeldeinformationen für das Powershell-Skript, das von SYSTEM ausgeführt wird

455
Groostav

Ich habe ein Powershell-Skript im Formular

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

Was ich gerade mache, ist das Einrichten von SSH-Schlüsseln im Voraus, aber das Problem ist, dass der Aufrufer meines Skripts ein Dienst ist, der im SYSTEM-Benutzerbereich ausgeführt wird. Dies bedeutet, dass keiner meiner SSH-Schlüssel generiert wird für administratoroder user1234gewöhnen. ärgerlich führt dies dazu, dass der Powershell-SSH-Client hängen bleibt.

Was ist die beste Lösung und hat jemand Code, um mich anzufangen?

  1. Ich könnte ein Powershell- runasFoo machen, um zwischen Benutzern zu wechseln, um mir eine Art Benutzer- Hardpoint für ssh zu geben
  2. Ich könnte die SSH-Schlüssel von ihrem Standardhaus verschieben ~/.ssh, obwohl ich wirklich nicht weiß, was sicher ist und was nicht hier ist
  3. Ich könnte mit unangenehmen Betriebskosten aufhören, einen Dienst mit dem SYSTEM-Benutzer zu verwenden, und versuchen, diesen Dienst jedes Mal, wenn ich ins Büro komme, als Benutzer auszuführen.

Danke vielmals!

1
Es gibt keinen PowerShell SSH-Client. Ich nehme an, Sie verwenden WSL und die reguläre WSL-SSH? Je nachdem, wie Sie das Skript ausführen, können Sie es auch einfach einem Benutzer zuweisen und müssen es nicht jedes Mal manuell ausführen, wenn Sie ins Büro kommen. [Gehen Sie davon aus] (https://docs.microsoft.com/de-de/windows/desktop/services/localsystem-account) Es scheint, dass das Standardbenutzer-Home sein Zuhause sein sollte. Seth vor 5 Jahren 0
Vorschlag: Verwenden Sie [psexec -s] (https://docs.microsoft.com/de-de/sysinternals/downloads/psexec), um Ihre Schlüssel zu generieren oder in das Systemkonto zu importieren. harrymc vor 5 Jahren 1
@Seth Powershell bietet in V 6 SSh-Unterstützung. Https://github.com/PowerShell/Win32-OpenSSH/releases uSlackr vor 5 Jahren 1
Haben Sie versucht, das PowerShell SSH-Modul aus der MS PowerShellGallery zu verwenden --- Find-Module -Name '* ssh *' postanote vor 5 Jahren 1
@ uSlackr danke, das ist interessant zu wissen. Wenn Sie sich jedoch anschauen, was das OP macht, ist es klar, dass er kein Cmdlet verwendet, sondern nur die Eingabe an den / einen OpenSSH-Port leitet. Das Modul für ssh enthält keine Funktionen zur Verwendung von SSH auf PowerShell-Art, sondern lediglich einen Port von SSH für Windows und ein OpenSSHUtils-Modul. Es ist zwar gut zu wissen, dass WSL nicht verwendet wird. Posh-SSH wäre ein echtes PowerShell-Modul, mit dem Sie SSH auf PowerShell-Art verwenden können. Seth vor 5 Jahren 1
Sieht aus, als würde er möglicherweise das Win32-Projekt verwenden und dazu ein Problem auf GitHub geöffnet haben: https://github.com/PowerShell/Win32-OpenSSH/issues/1287 uSlackr vor 5 Jahren 1
@uSlackr das ist richtig, es tut mir leid, ich bin nicht wirklich in ssh einheimisch durchdrungen, und ich war mir ziemlich sicher, dass ich meinen ssh-Client durch chocolaty bekommen hatte. Ich habe dieses Problem gemacht, da meiner Meinung nach ein Fehler nicht fehlgeschlagen ist. Aber jetzt, da Sie auf die vielen verschiedenen Optionen für ssh hingewiesen haben, weiß ich nicht mehr, was ich tun soll. Soll ich einfach meine offene ssh-Installation entfernen, posh-git packen und einen Tag lang anrufen? Groostav vor 5 Jahren 0

0 Antworten auf die Frage