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


2

私の通常のワークフローの一部として、私は他のユーザーのマシンにSSH接続し、ユーザーを切り替え、コマンドを実行し、そして私自身のマシンに再び出ます。

ssh hostname
sudo su user
runcommand
exit
exit

これを1行のコマンドに減らす方法はありますか?例えば

ssh --someflags "runcommand"

私はこれを試しましたが、私が持っていない他のユーザーのパスワードの入力を求められます。

sudo ssh user@hostnme "runcommand"

何かのようなもの ssh myaccount@somehost "su -u <user> -c <command>" うまくいかない?
Fiisch

あなたはいつでもあなたの鍵をauthorized_keysファイルに公開することができます。その後、そのユーザーアカウントを使用して直接接続できます。
Zoredache

回答:


5

すべてのリモートコンピュータにユーザーがいますか?私はこれでうまくいくと思いますが、私はあなたの設定が正しく理解されているかどうかはわかりません。

ssh youruser @ hostname「sudo -u remoteuser runco​​mmand」


そして、これはEskerの問題にどの程度正確に対処しているのでしょうか。
Fiisch

ええ、私は誤解しました。答えを更新しました。
piksel bitworks

2
少し微調整をしても、うまくいきました。 ssh -t hostname "sudo su user -c runcommand"
Esker

1

多くの場合、端末も必要です。この場合、以下がうまくいくはずです。

commands='cd myfolder;ls -l'

ssh -ttt "youruser@remotehost" "sudo -u remoteuser sh -c ${commands}"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.