閉鎖。 この質問はトピックから外れています。現在、回答を受け付けていません。
この質問を改善する
Linux
この質問を改善したいですか? 質問を更新して、UnixおよびLinuxStackExchangeのトピックになります。
2年前に閉鎖されました。
この質問を改善する
sshpass
で複数のコマンドを使用する方法はありますか 、異なる組み合わせで試しましたが、エラーが発生します。
$ sudo sshpass -p $password ssh -t -oStrictHostKeyChecking=no [email protected]$ipaddress << EOF
command_one
command_two
command_three
EOF
正確で正確なコマンドは何ですか。可能であれば例を教えてください。
承認された回答:
ソリューションはsshpassの有無にかかわらず機能します。機能しない場合は、他に問題がある可能性があります。
また、常にすべての変数を引用する必要があることに注意してください。
さらに、stricthostkeycheckingを軽く無効にしないでください。ホストキーが頻繁に変更される場合は、サーバーが危険にさらされている可能性があります
ただし、目標を達成するためのいくつかの方法は次のとおりです。
コマンドセパレータを使用する(;
、 &&
、 ||コード> )
sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "[email protected]" 'command_one; command_two; command_three'
ヒアドキュメントの使用(リモートホストで変数/コマンド置換を展開するための単一引用符EOF):
sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "[email protected]" <<EOF
command_one
command_two
command_three
EOF
別のファイルを使用する:
file.sh
command_one
command_two
command_three
次に、次のように実行します:
cat file.sh | sshpass -p "$password" ssh -t -oStrictHostKeyChecking=no "[email protected]"
sshトンネルの使用:
sshpass -p "$password" ssh -f -L 3306:localhost:3306 "[email protected]" sleep 300 # This will open a tunnel to the remote host and hold it open for 5 minutes
ssh -T "[email protected]" 'command_one'
ssh -T "[email protected]" 'command_two'
ssh -T "[email protected]" 'command_three'