これは、rootアクセスがないと悪い考えです。Apacheのユーザーがあなたの秘密鍵を確実に見ることができるようにするには、それを誰でも読めるようにする必要があります。rootがないchown www-data:www-data
と、Apacheはそれを見ることができないだけでなく、システム上のすべてのユーザーがそれを見ることができます。 。これは非常に悪い考えであるため、OpenSSHはデフォルトでは許可しません。秘密鍵に不当に開くファイルのアクセス許可がある場合、OpenSSHは実行を拒否します。
私はこれをしないことを強くお勧めします。PHPにSSHキーを使用してリモートコマンドを実行させる必要がある場合は、リンクに沿ってより安全なものを設定するために、rootアクセス権を持つ誰かが必要になります。
より安全な代替手段は、ターゲットマシン上で、定義したパスワードを含むHTTPリクエストを受け取り、事前定義されたコマンドを実行して出力を返すPHPスクリプトを作成することです。このスクリプトが安全に作成され、事前定義された1つのコマンドしか実行できない場合、攻撃者が実行できるのは、このスクリプトのパスワードが自分のパスワードと同じでない限り、同じコマンドを実行することだけです。正確に1つのコマンドである必要はなく、注意すればいくつかの引数を取ることもできます。重要な点は、リモートユーザーに任意の実行を許可しないことです。ターゲットマシン上のコマンド。実行したいコマンドが潜在的に有害ではなく、代わりに他のコマンドを実行できるようにするコーディングエラーがスクリプトに含まれていないことが確実な場合、これはそれほど悪い考えではありません。