Apache + SSH パスワード無し認証

Apache に SSH パスワードなし認証をさせるメモ。

特定のユーザでリモート先のスクリプトなどをWEBから操作したいとき便利。

前提として Apache が /usr/local/apache にインストールと、sudo の設定がされてる。

専用のApacheユーザを作成する。すでに存在する場合は、飛ばす。

  
$ groupadd apache  
$ useradd -g apache -d /home/apache -s /sbin/nologin apache  

httpd.conf を編集し、UserとGroupを書き換える。

  
$ cd /usr/local/apache/conf  
$ sudo vi httpd.conf  
User apache  
Group apache  

パスワード無しSSHを行うための準備をする。

  
$ cd /home/apache  
$ sudo -u apache ssh-keygen -t dsa -N ” -q  
$ sudo scp ./ssh/id_dsa.pub user@host:  
$ ssh user@host ‘cat id_dsa.pub >> .ssh/authorized_keys’  
$ sudo -u apache ssh user@host  
yes  

Apache を起動。

  
$ cd /usr/local/apache/bin  
$ sudo ./apachectl start  

実験用のスクリプトを書く。(今回は、PHPで実験)

  
$ cd /usr/local/apache/htdocs  
$ sudo vi index.php  
  

書いたスクリプトにアクセスして、リモート先の ls 結果が表示されれば成功。