
通常のワークフローの一部として、別のユーザーのマシンに 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 runcommand"
答え2
多くの場合、ターミナルも必要になります。この場合、次の方法が機能します。
commands='cd myfolder;ls -l'
ssh -ttt "youruser@remotehost" "sudo -u remoteuser sh -c ${commands}"