みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

AWSのEC2のwebサーバを踏み台にしたい

AWSのEC2インスタンスに関しての質問です。
現在AWSを利用していて、操作がわからないので、どなたかご教授お願いします。 VPCの中にパブリックサブネットとプライベートサブネットを作成しました。
パブリックサブネットの中にApacheをインストールしたwebサーバを作り、
プライベートサブネットの方にMySQLを入れたいです。
NATインスタンスも作成して、Apacheのインストールも終わったので、
webサーバーを踏み台にして
サブネットにあるインスタンスにMySQLをインストールするところです。

しかし、うまく踏み台に出来ず、セキュリティグループに問題はないと思うので、
キーペアーの問題かなとおもっています。

なんかSSHでアクセスするにはwebサーバーに秘密鍵を置く必要があるようなのですが、
その作業が出来ません。
マックを使っていてターミナルから以下のコマンドを打ち込んでいます。

scp -i XXXXX.pem ec2-user@ ec2-YY-YY-YY-YY. ap-northeast-1.compute.amazonaws.com:~/

どこかコマンド間違っているでしょうか?
"Permission denied (publickey).
lost connection"というメッセージが出ているので
パーミッションかなと思い
chmod 400 XXXXX.pemを実行してもなにもかわらず…
ここで詰まっています。
原因がわかる方、もしよければ教えていただけると助かります。

よろしくお願い致します。

投稿日時 - 2014-07-30 08:37:52

QNo.8697699

困ってます

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

インターネット(具体的にはあなたのMac)からパブリックのWebサーバーにsshした後でそのWebサーバーからプライベートのMySQLサーバーにsshしたいという事でいいだろうか。

この時、あなたのMacからWebサーバーにsshする時のキーペアとWebサーバーからMySQLサーバーへsshする時のキーペアは違う(技術的には同じにしても別にいいけど)。

いったん話をリセットして最初からやってみよう。
まず、あなたのMacでキーペアを作る。
satsusatsu-Mac$ ssh-keygen -b 2048
これで、id_rsa(秘密鍵)とid_rsa.pub(公開鍵)というファイルがあなたのMacのあなたのユーザーのホームディレクトリの中にある.sshというディレクトリの中にできあがるはずだ。
そして公開鍵をWebサーバーに送る。
satsusatsu-Mac$ scp -i id_rsa.pub ec2-user@ec2-YY-YY-YY-YY. ap-northeast-1.compute.amazonaws.com:~/
今、これは公開鍵がWebサーバーのホームにあるのでこのままでは使えない。これは一旦おいておいてWebサーバーでもキーペアを作ろう。
[ec2-user@ec2-YY-YY-YY-YY]$ ssh-keygen -b 2048
ここでもWebサーバーの中に ~/.ssh/id_rsa と ~/.ssh/id_rsa.pub ができあがる。
で、自動的に ~/.ssh/ も出来上がったので、あなたのMacからWebサーバーにsshできるようにしよう。
[ec2-user@ec2-YY-YY-YY-YY]$ cd ~/.ssh
[ec2-user@ec2-YY-YY-YY-YY]$ cat ~/id_rsa.pub >> authorized_keys
これで、あなたのMacで別のコンソールを開いて何も聞かれずにsshできる事を確認しよう。
これが出来たら、後はWebサーバーにsshした後、Webサーバーの ~/.ssh/id_rsa.pub をMySQLサーバーに転送して同じ事を行えば良い。そうするとWebサーバーからMySQLサーバーに何も聞かれずにsshできるようになる。

公開鍵を公開鍵として使えるようにするには ~/.ssh/authorized_keys というファイルに公開鍵の中身を書き込まないといけないというところがポイントだ。

WebサーバーとMySQLサーバーがともにLinuxである事を前提にしてます。

投稿日時 - 2014-07-30 20:39:43

あなたにオススメの質問