Odpowiedzi:
ssh user@remotehost "bash -s" < local_script.sh
-s sprawia, że bash jest czytany ze standardowego wejścia.
Jeśli musisz przekazać argumenty do skryptu:
ssh user@remotehost "bash -s" -- < local_script.sh "your_arg" "--aswitch" "avalue"
Zwróć uwagę na podwójny myślnik --(oznaczający koniec opcji polecenia) i cudzysłowy wokół argumentów.
-si potrzebujesz tylko, bashjeśli naprawdę chcesz wymusić użycie bash. Zwykle możesz po prostussh user@remotehost < local_script.sh
odpowiedź phoibos działa dla mnie.
ssh user@remotehost "bash -s" < local_script.sh
Musisz jednak upewnić się, że skrypt wyraźnie wywołuje polecenie exit, w przeciwnym razie po wykonaniu skryptu pozostaniesz zalogowany na serwerze zdalnym.
Krótko mówiąc, nie zapomnij umieścić tego na końcu local_script.sh:
exit 0