複数の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

-tsshがリモートホストの端末に接続しないようにフラグを削除することでこの問題を解決できました。

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

出力:

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

また、リモートホストの端末に入らないようにするのではなく、ローカルホストに滞在し続けます。

おすすめ記事