여러 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:~/$

또한 원격 호스트의 터미널에 접속하지 않고 로컬 호스트에 계속 머물게 했습니다.

관련 정보