SSH 経由で自分のマシン上で別のユーザーとしてコマンドを実行しますか?

SSH 経由で自分のマシン上で別のユーザーとしてコマンドを実行しますか?

通常のワークフローの一部として、別のユーザーのマシンに ssh で接続し、ユーザーを切り替えてコマンドを実行し、再び自分のマシンに戻ります。

ssh hostname
sudo su user
runcommand
exit
exit

これを1行のコマンドに短縮する方法はありますか?例:

ssh --someflags "runcommand"

これを試してみましたが、他のユーザーのパスワードの入力を求められましたが、そのパスワードを持っていません。

sudo ssh user@hostnme "runcommand"

答え1

すべてのリモート コンピューターにユーザーがいますか? これで動作するはずですが、設定を正しく理解できていないようです。

ssh youruser@hostname "sudo -u remoteuser runco​​mmand"

答え2

多くの場合、ターミナルも必要になります。この場合、次の方法が機能します。

commands='cd myfolder;ls -l'

ssh -ttt "youruser@remotehost" "sudo -u remoteuser sh -c ${commands}"

関連情報