Как да използвате SSH, за да стартирате скрипт на шел на отдалечена машина?

Трябва да стартирам скрипт на шел (Windows/Linux) на отдалечена машина.

Имам конфигуриран SSH и на машина А, и на машина Б. Скриптът ми е на машина А, която ще изпълнява част от кода ми на отдалечена машина, машина Б.

Местният и отдалеченият компютър могат да бъдат Windows или Unix базирани системи.

Има ли начин това да стане с помощта на plink/ssh?

$ ssh user@hostB "ls -la"

Това ще ви подкани да въведете парола, освен ако не сте копирали публичния ключ на потребителя hostA в authorized_keys файла в домашната директория на потребителя .ssh's. Това ще позволи автентикация без парола (ако е приета като метод за автентикация в конфигурацията на ssh сървъра'с)

Коментари (3)

Ако приемем, че имате предвид, че искате да направите това автоматично от "локална" машина, без да влизате ръчно в "отдалечената" машина, трябва да разгледате разширението на TCL, известно като Expect, което е предназначено точно за такива ситуации. Предоставил съм и връзка към скрипт за влизане/взаимодействие чрез SSH.

https://www.nist.gov/services-resources/software/expect

http://bash.cyberciti.biz/security/expect-ssh-login-script/

Коментари (0)

Първо, копирайте скрипта на машина B, като използвате scp

[user@machineA]$ scp /path/to/script user@machineB:/home/user/path

След това просто стартирайте скрипта

[user@machineA]$ ssh user@machineB "/home/user/path/script"

Това ще работи, ако сте дали разрешение за изпълнение на скрипта.

Коментари (6)