Ich muss ein Shell-Skript (Windows/Linux) auf einem entfernten Rechner ausführen.
Ich habe SSH sowohl auf Rechner A als auch auf Rechner B konfiguriert. Mein Skript befindet sich auf Rechner A, der einen Teil meines Codes auf einem entfernten Rechner, Rechner B, ausführen wird.
Die lokalen und entfernten Computer können entweder Windows- oder Unix-basierte Systeme sein.
Gibt es eine Möglichkeit, dies mit plink/ssh zu tun?
<hostA_shell_prompt>$ ssh user@hostB "ls -la"
Dadurch werden Sie zur Eingabe eines Passworts aufgefordert, es sei denn, Sie haben den öffentlichen Schlüssel Ihres hostA-Benutzers in die Datei authorized_keys im Verzeichnis home of user.ssh's kopiert. Dies ermöglicht eine passwortlose Authentifizierung (wenn dies in der Konfiguration des ssh-Servers als Authentifizierungsmethode akzeptiert wird)
Wenn Sie meinen, dass Sie dies automatisch von einem lokalen Rechner aus tun wollen, ohne sich manuell auf dem entfernten Rechner anzumelden, sollten Sie sich eine TCL-Erweiterung namens Expect ansehen, die genau für diese Art von Situation entwickelt wurde. Ich habe auch einen Link zu einem Skript zum Einloggen/Interagieren über SSH bereitgestellt.
Kopieren Sie das Skript zunächst mit scp auf Maschine B
[user@machineA]$ scp /path/to/script user@machineB:/home/user/path
Dann führen Sie das Skript einfach aus
[user@machineA]$ ssh user@machineB "/home/user/path/script"
Dies funktioniert, wenn Sie dem Skript Ausführungsrechte erteilt haben.