suEXEC 機能を使えば良いのではないでしょうか。
suEXEC Support - Apache HTTP Server
suEXEC 機能により、Apache ユーザは Web サーバを実行しているユーザ ID とは 異なるユーザ ID で CGI プログラムや SSI プログラムを実行することができます。CGI プログラムまたは SSI プログラムを実行する場合、通常は web サーバと同じユーザで実行されます。
まずサンプルです。
1.apache 権限でパスフレーズ無しの鍵を作成します。
1-1.鍵作成用ページ(keygen.php)を作成する。
<?php system("ssh-keygen -t dsa -f key/id_dsa -N '' -q"); ?>
1-2.apacheで書き込みが出来るように鍵ファイル置き場(key)を作成する。
mkdir key chmod 777
1-3.keygen.phpにブラウザでアクセスして key/id_dsa と key/id_dsa.pub が作成されたことを確認する。
2.公開鍵(key/id_dsa.pub)を接続先サーバの ~/.ssh/autorized_keys に追加する。
2-1.sshコマンドを実行するページ(ssh.php)を作る
<?php system('ssh -o "StrictHostKeyChecking no" -i key/id_dsa -l user1 -p 10022 host1 ls'); ?>
2-2.このページにアクセスしてみて接続先で ls が実行されたら成功です。
apache に ssh を実行させるポイントは大体以下の通りです。
↑の回答の補足ですが、suexec 環境で CGI の場合はapache権限ではなく、ユーザ権限で実行できるので秘密鍵のパーミッションとかはあまり気を遣う必要は無いと思います。
nobodyユーザーだとホームディレクトリがないなどで、うまく設定できていない
ということなので、suexecされていないCGIか、php環境などを想定して回答しました。
はい、まさしくPHP環境です。