При запуске локального скрипта на удаленном сервере через несколько SSH скрипт разбивается на несколько строк?

При запуске локального скрипта на удаленном сервере через несколько SSH скрипт разбивается на несколько строк?

У меня есть скрипт на локальной машине script.sh. Я хочу запустить его на удаленном сервере, доступ к которому возможен только по нескольким SSH.

скрипт.sh:

ls
ls
ls

Я пытался:

user@localhost:~/$ ssh -At host1 ssh -At host2 "bash -s" -- < ./script.sh

но вывод был разделен на несколько строк:

user@host2:~/$ ls
examples.desktop
user@host2:~/$ ls
examples.desktop
user@host2:~/$ ls

Я также хотел бы, чтобы это выполнялось без необходимости заходить в терминал на удаленной машине.

Как мне заставить скрипт выполняться как одна команда?

решение1

Мне удалось исправить это, сняв флаг -t, так что ssh не переводил меня в терминал на удаленном хосте.

user@localhost:~/$ ssh -A host1 ssh -A host2 "bash -s" -- < ./script.sh

Выход:

examples.desktop
examples.desktop
examples.desktop
user@localhost:~/$

Это также позволило мне оставаться на локальном хосте, а не перенаправляться в терминал на удаленном хосте.

Связанный контент