Muszę uruchomić skrypt powłoki (windows/Linux) na zdalnej maszynie.
Mam SSH skonfigurowane zarówno na maszynie A, jak i B. Mój skrypt jest na maszynie A, która będzie uruchamiać niektóre z moich kodów na zdalnej maszynie, maszynie B.
Komputery lokalne i zdalne mogą być zarówno systemami opartymi na Windowsie, jak i Unixie.
Czy istnieje sposób, aby uruchomić to przy użyciu plink/ssh?
<hostA_shell_prompt>$ ssh user@hostB "ls -la"
Spowoduje to wyświetlenie monitu o podanie hasła, chyba że skopiowałeś klucz publiczny użytkownika hostA'do pliku authorized_keys w katalogu home użytkownika .ssh'. To pozwoli na uwierzytelnienie bez hasła (jeśli zostanie zaakceptowane jako metoda auth w konfiguracji serwera ssh's)
Zakładając, że masz na myśli to, że chcesz to zrobić automatycznie z "lokalnej" maszyny, bez ręcznego logowania się do "zdalnej" maszyny, powinieneś przyjrzeć się rozszerzeniu TCL znanemu jako Expect, jest ono zaprojektowane dokładnie do tego rodzaju sytuacji. Zamieściłem również link do skryptu do logowania/interakcji przez SSH.
Po pierwsze, skopiuj skrypt na maszynę B używając scp
[user@machineA]$ scp /path/to/script user@machineB:/home/user/path
Następnie wystarczy uruchomić skrypt
[user@machineA]$ ssh user@machineB "/home/user/path/script"
To zadziała, jeśli nadałeś skryptowi uprawnienia do wykonywania.