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:~/$
또한 원격 호스트의 터미널에 들어갈 수 없게 하는 대신 로컬 호스트에 계속 머물게 합니다.