Трябва да стартирам скрипт на шел (Windows/Linux) на отдалечена машина.
Имам конфигуриран SSH и на машина А, и на машина Б. Скриптът ми е на машина А, която ще изпълнява част от кода ми на отдалечена машина, машина Б.
Местният и отдалеченият компютър могат да бъдат Windows или Unix базирани системи.
Има ли начин това да стане с помощта на plink/ssh?
<hostA_shell_prompt>$ ssh user@hostB "ls -la"
Това ще ви подкани да въведете парола, освен ако не сте копирали публичния ключ на потребителя hostA в authorized_keys файла в домашната директория на потребителя .ssh's. Това ще позволи автентикация без парола (ако е приета като метод за автентикация в конфигурацията на ssh сървъра'с)
Ако приемем, че имате предвид, че искате да направите това автоматично от "локална" машина, без да влизате ръчно в "отдалечената" машина, трябва да разгледате разширението на TCL, известно като Expect, което е предназначено точно за такива ситуации. Предоставил съм и връзка към скрипт за влизане/взаимодействие чрез SSH.
Първо, копирайте скрипта на машина B, като използвате scp
[user@machineA]$ scp /path/to/script user@machineB:/home/user/path
След това просто стартирайте скрипта
[user@machineA]$ ssh user@machineB "/home/user/path/script"
Това ще работи, ако сте дали разрешение за изпълнение на скрипта.