php

<?php    
exec('sh read.sh', $output);
print_r($output);

read.sh

 #!/bin/sh                       
 /usr/bin/expect -c "
 set timeout 10         
 spawn ssh test
 expect \"passphrase\" {
 send \"pass\r\"   
 expect \"Last login\"  
 send \"ls\r\"          
 expect \"$\"           
 send \"exit\r\"
 }                      
 interact               
 " 

上記のコードのように phpからexecでシェルを実行して、 sshで接続した先でlsをし、その結果をphpで受け取りたいです。

しかしコードの結果は

spawn ssh test

という、戻り値になってしまっています。 read.shを直接実行すると、意図したlsの結果が返却されます

sshの接続や、実行権限などは確認済みです。

なにか原因やコツなどわかるかたいましたらご教授ください。 宜しくお願いします。

環境 さくらVPS php 5.5 apache2.2