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
<?php
system( “ssh user@host ‘ls’” );
?>

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

関連エントリー:

Mac Leopard Apache + MySQL + PHP

ssh & リモート & コマンド & パスワードなし

SSH + 鍵認証

Mac Leopard 自動起動 + MySQL + Apache

MacPorts + MySQL5 + Apache2 + PHP5

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre lang="" line="" escaped="" highlight="">