Jeg skal køre et shell-script (Windows/Linux) på en fjernmaskine.
Jeg har SSH konfigureret på både maskine A og B. Mit script er på maskine A, som vil køre noget af min kode på en fjernmaskine, maskine B.
De lokale og fjerncomputere kan være enten Windows- eller Unix-baserede systemer.
Er der en måde at køre gøre dette ved hjælp af plink/ssh?
<hostA_shell_prompt>$ ssh user@hostB "ls -la"
Du vil blive bedt om at indtaste en adgangskode, medmindre du har kopieret din hostA user's offentlige nøgle til filen authorized_keys i brugerens hjemmappe .ssh's mappe. Det vil give mulighed for adgangskodefri autentifikation (hvis det accepteres som en auth-metode i ssh-serverens konfiguration)
Hvis du mener, at du ønsker at gøre dette automatisk fra en "lokal" maskine, uden manuelt at logge ind på "fjern" maskinen, bør du kigge på en TCL udvidelse kendt som Expect, den er designet netop til denne slags situationer. I've også givet et link til et script til log-in/interaktion via SSH.
Først kopieres scriptet over til maskine B ved hjælp af scp
[user@machineA]$ scp /path/to/script user@machineB:/home/user/path
Derefter skal du bare køre scriptet
[user@machineA]$ ssh user@machineB "/home/user/path/script"
Dette vil virke, hvis du har givet scriptet eksekveringstilladelse til scriptet.