Hatena::ブログ(Diary)

asa nisi masa RSSフィード

2013-08-15 AWS EC2 に SSH 接続する(続き)

AWS EC2 に SSH 接続する(その2 定義したユーザで)

前回AWSインスタンスにビルトインユーザで SSH 接続したけど、さすがにこのままではまずいので、別のユーザで接続できるようにする。


参考(というより丸コピ でし orz...)


サマリー

こんなコトをしているという認識。

  • aws が作成するキーとは別に独自のキーペアを作成し、サーバに公開鍵、クライアント秘密鍵を配置して接続する。
  • サーバ側には、接続に使用するユーザを作成し、管理者として作業できるようにする。

配置イメージ
  • ローカルホスト
    • 秘密鍵ファイルが配置されている

 $ ls -l ~/.ssh
 total 24
 -rw-------  1 hoge  hoge  1675  8 14 21:57 id_rsa


手順概要
  1. EC2インスタンスにユーザを作る
  2. ローカルホストでキーペア(公開鍵と秘密鍵)を作る
  3. 公開鍵をEC2インスタンスに転送する
  4. パーミッション設定とか
  5. 接続確認

EC2インスタンス上でユーザを作成し、sudo 権限を付与する。

ユーザを作成し、パスワードを設定する

[root@ip-172-31-40-173 ec2-user]# adduser hoge
[root@ip-172-31-40-173 ec2-user]# passwd hoge
ユーザー hogeパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。

sudo 権限を付与する

/etc/sudoers に以下を追加する

hoge ALL=(ALL)       ALL     

AWSインスタンスからログアウトする

exit

SSH 接続のための公開鍵と秘密鍵を作成する

ローカルホストでの作業。

ssh-keygen コマンド*1 を使って RSA のキーを作成します。

以下のコマンドで、RSA キー(公開鍵+秘密鍵)の両方が作成される様子。

$ ssh-keygen -t rsa -C “awsGenerating public/private rsa key pair.
Enter file in which to save the key (/Users/hoge/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/hoge/.ssh/id_rsa.
Your public key has been saved in /Users/hoge/.ssh/id_rsa.pub.
The key fingerprint is:
 (略)
The key's randomart image is:
  (略)

キーが作成されている。

$ ls ~/.ssh/
id_rsa		id_rsa.pub	known_hosts


EC2 インスタンスに公開鍵を配置する

転送する

scp コマンド*2を使用して、転送する

以下のオプションなどを指定している

  • キー:firstKey.pem。EC2 インスタンス作成時に生成したキー
  • コピー元ファイル:~/.ssh/id_rsa.pub。生成された公開鍵
  • ユーザ:ec2-user。root で接続したら、「Please login as the ec2-user user rather than root user.」と言われた。既存のユーザで接続する。
  • サーバ:54.213.150.XXX。EC2IP アドレス(またはホスト名)
  • コピー先パス:/home/ec2-user/。ひとまずここへ。

$ scp -i firstKey.pem ~/.ssh/id_rsa.pub ec2-user@54.213.150.XXX:/home/ec2-user/
http://:title=id_rsa.pub                                    100%  391     0.4KB/s   00:00   ] 


転送を確認する

EC2 インスタンスログインして確認すると、コピーされている。

[ec2-user@ec2 instance ~]$ ls ~
id_rsa.pub


公開鍵を hogeユーザのホームディレクトリ配下に配置する

先ほど作成したユーザでログインする。

su hoge


証明書を配置するディレクトリ .ssh を作成する。

$ mkdir .ssh


転送した公開鍵を authorized_keys という名前で .sshディレクトリ に 配置する

$ sudo mv /home/ec2-user/id_rsa.pub /home/hoge/.ssh/authorized_keys

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for hoge: 


配置された。

$ ls /home/hoge/.ssh/
authorized_keys

公開鍵ファイルのユーザとグループを hoge に変更する。

[hoge@ec2-instance ~]$ sudo chown hoge /home/hoge/.ssh/authorized_keys 
[hoge@ec2-instance ~]$ sudo chgrp hoge /home/hoge/.ssh/authorized_keys 

パーミッションを 600 に変更する。

[hoge@ec2-instance ~]$ sudo chmod 600 /home/hoge/.ssh/authorized_keys 
[hoge@ec2-instance ~]$ sudo chmod 700 /home/hoge/.ssh/


hoge で再接続する

インスタンスからログアウト

$ exit

新しく配置した鍵を用いて hoge で再ログインする

/home/hoge/.ssh/ の秘密鍵デフォルトで使用されるらしい。

$ ssh hoge@54.213.150.XXX

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2013.03-release-notes/
[hoge@ip-172-31-40-XXX ~]$ 


接続できた!


以上。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/january/20130815/1376579457