リモートホストでsshを使用し、rootとして実行されているローカルホストでユーザーを切り替えます。

リモートホストでsshを使用し、rootとして実行されているローカルホストでユーザーを切り替えます。

ルートとして実行されるスクリプトがあります。 SSH 経由でリモートホストに接続し、ユーザー gol でスクリプトを実行します。ユーザー(gol)のSSHキーをリモートホストに追加しました。ただし、スクリプトが root として実行されているため、パスワードの入力を求められます。スクリプトの内容は次のとおりです。

ssh gol@remotehost '/home/scripts/script1.sh'

そのため、sshコマンドを実行する前にローカルユーザーに切り替えるようにコマンドを変更しましたが(golユーザーがsshキーを追加したため)、失敗しました。

su - gol -c ssh gol@remotehost '/home/scripts/script1.sh'

このスクリプトには別のスクリプトがあるため、rootとして実行する必要があります。

ベストアンサー1

問題は、rootクライアントがrootとして実行されるため、デフォルトでSSHが秘密鍵を使用しようとすることです。まだrootとして実行したいが、golの秘密鍵を使用したい場合は、rootにアクセスできるので可能です。すべて。したがって、gol秘密鍵を使用してsshをrootとして呼び出すには、秘密鍵がどこにあるかsshに通知するだけです。あなたのシステムはわかりませんが、おそらくここにいるでしょう。

/home/gol/.ssh/id_rsa

使用する秘密鍵をsshに通知できます。

ssh -i /home/gol/.ssh/id_rsa gol@remotehost '/home/scripts/script1.sh'

あるいは、正しく引用して元々試した方法を使用することもできます。

su - gol -c "ssh gol@remotehost '/home/scripts/script1.sh'"

おすすめ記事