Sollten wir SSH oder psexec verwenden? Welche Vorteile bieten die beiden Verfahren?

Sollten wir SSH oder psexec verwenden? Welche Vorteile bieten die beiden Verfahren?

Unser Entwicklungsteam erstellt derzeit Quellcode und stellt diesen Quellcode auf Zielrechnern bereit – das typische Setup. Derzeit verwenden wir psexec, um Befehle an Remote-Hosts auszugeben (z. B. die Umgebungen herunterfahren, den neuen Code übertragen, die Umgebungen neu starten usw.).

Wäre es besser, für diese Dinge SSH zu verwenden? Wäre es zuverlässiger/benutzerfreundlicher? Könnte mir jemand die Vor- und Nachteile der beiden erklären?

Antwort1

Da SSH nicht standardmäßig in Windows enthalten ist, müssen Sie es auf allen aktuellen Boxen einrichten, auf denen Sie die Bereitstellung durchführen.

Natürlich können Sie ein Installationsskript einrichten, um dies mit einem Shellskript über psexec zu automatisieren :)

Es hängt wirklich von Ihrem Anwendungsfall ab.

Wie wichtig ist Sicherheit?

SSH wurde als Ersatz für Telnet entwickelt. Es bietet Ihnen wie Telnet eine Shell auf dem Remote-Computer, aber alle Daten werden durch einen sicheren Tunnel gesendet, sodass alle Daten verschlüsselt sind, wenn jemand Pakete abhört.

Insgesamt ist SSH viel vielseitiger. Sie können TCP-Weiterleitung einrichten, sodass andere Anwendungen Ihren SSH-Tunnel zur Kommunikation nutzen können. Ein Beispiel hierfür wäre VNC. Normalerweise wird der Remote-Frame-Buffer (Ihre Bildschirmdaten) unverschlüsselt über Ihr Netzwerk gesendet. Sie können sich problemlos über SSH mit dem Remote-Rechner verbinden und dann den SSH-Tunnel nutzen, um die Bildschirmdaten auf sichere Weise zu senden.

PSEXEC ist ein großartiges Tool für das, was Sie oben beschreiben. Es erfordert keine zusätzliche Einrichtung (in Windows integriert).

PSEXEC verwendet RPC (Remote Procedure Calls) zur Kommunikation. Ich gehe davon aus, dass die Daten verschlüsselt werden, sobald der „Kommunikationskanal“ eingerichtet ist, obwohl ich mir über die verwendeten Methoden nicht ganz sicher bin (SSH kann auf verschiedene Arten konfiguriert werden).

Wenn Sie jedoch Benutzeranmeldeinformationen angeben müssen, werden diese über das Netzwerk gesendet in PLAIN TEXT. Ich glaube, dies könnte in der Ausgabe des psexec /?Befehls stehen. Allerdings stehe ich im Moment nicht vor einer Windows-Box, um dies zu überprüfen.

Sieh dir das anVERKNÜPFUNGfür Optionen gibt es vor dem Abschnitt mit den Beispielen einen Hinweis dazu.

Es hängt also wieder einmal davon ab, was Sie tun müssen. Was die Stabilität betrifft: Ich hatte noch nie wirklich Stabilitätsprobleme mit PSEXEC. Ich würde nicht sagen, dass die Stabilität ein Grund wäre, SSH gegenüber PSEXEC in Betracht zu ziehen, es sei denn, Sie haben Probleme bei der Verwendung von PSEXEC.

PSEXEC ist nicht so konfigurierbar wie SSH. Sofern Sie nicht an die Einschränkungen von PSEXEC stoßen, sollten Sie SSH in Betracht ziehen. Wenn Sie einfach neuen Code kopieren und Remote-Rechner neu starten und keine Anmeldeinformationen über PSEXEC übergeben (d. h. die Befehle über Ihren aktuellen Benutzernamen auf dem Remote-Rechner ausführen), warum sollten Sie das dann nicht weiterhin tun?

Wenn Sie tatsächlich nur kopieren und neu starten müssen, warum verwenden Sie dann nicht einfach einige cmd.exeBefehle wie copy/ xcopy/ shutdown(wenn es sich in Ihrem LAN befindet oder Sie eine andere Route dorthin haben, z. B. über VPN) anstelle von PSEXEC?

verwandte Informationen