Help us understand the problem. What is going on with this article?

パスワードなしでssh接続できるようにする方法

More than 5 years have passed since last update.

0.序論

WebサーバとDBサーバを別のマシンに切り分ける場合、WebサーバからDBサーバにパスワードなしでアクセスできなければ正常にアクセスできません。
そのための方法を以下に記します。

1.Webサーバ側(ssh接続元)にssh鍵を作成

ls -al ~/.ssh #まず鍵がないことを確認
ssh-keygen -t rsa #鍵作成
  • 1行目で、id_rsaとかid_rsa.pubがあったら、それを使い回せばOK
  • 2行目でパスフレーズの入力を求められるが、何も入力せずEnterキーを押せば良い

2.作った鍵をDBサーバ側(ssh接続先)に置く

Webサーバ(ssh接続元)で作成した公開鍵id_rsa.pubの中身をDBサーバ(ssh接続先)の~/.ssh/authorized_keysに追記する。

3.上記ファイル(フォルダ)権限の設定

ファイルの所有者のみ読み書きできるよう設定する。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

4.sshを有効にする設定

vim /etc/ssh/sshd_config

/etc/ssh/sshd_configファイルに以下の設定をする。

PubkeyAuthentication=yes
PasswordAuthentication=no
  • rootユーザからのアクセスを許可するか否かで、permitRootLogin=yesとかを記述する。
  • /etc/ssh/sshd_configファイル変更後、sshdの再起動忘れずに!
/etc/init.d/sshd restart
  • ここまでできたら、実際にssh接続してみて、パスワードなしで接続できるか確認してみると良い

5.実際にWebサーバからDBにアクセスできるようにする

5-1.DBの接続先の設定

Webサーバのアプリケーションの設定で、接続するDBサーバのIPアドレスを記述する。(IPアドレスはifconfigコマンドで調べられる)

(例1)
WordPress → wp-config.phpファイルに、

define('DB_HOST', 'localhost');

を記述。

(例2)
MediaWiki → LocalSettings.phpファイルに、

$wgDBserver='localhost';

を記述。

  • いずれの例の場合も、localhostの部分を接続したいDBサーバのIPアドレスにすればOK!
  • ファイルの場所が分からなければfind パス名 -name LocalSettings.phpとかで検索かければ見つかる。

5-2.DB側の権限の設定

  • 権限の確認
select user, host from mysql.user;
  • 特定ユーザの権限の確認
show grants for 'ユーザー名'@'ホスト名';
  • 権限の付与
GRANT 権限 ON レベル TO user;

【参考URL】
▼[MySQL]権限の確認と付与
http://qiita.com/shuntaro_tamura/items/2fb114b8c5d1384648aa

sirok
プッシュ通知サービス Growth Pushやその他 グロースハックツールを開発・運営するスタートアップ
http://sirok.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした