[aws][amazon][ec2] Amazon ec2にSSHで接続する

SSH TIPS

2016年加筆
新ユーザーを作ってもいいんですが、レプリケーションや複数台運用を考えるといちいちユーザー作るのが手間すぎるので、ec2-userのままで運用するやり方を模索したほうがいいんじゃないかと思います。(ォィ)


新規にAmazonのEC2領域作ったらまず最初にやること。
(これをプログラムして自動化したいっす)


主な手順:

1.AWSのアカウント開設およびEC2のインスタンス作成
2.sshのコマンドでec2-user@でとりあえずつなぐ(ssh -i XXXX.pem ec2-user@ec2-xxx-xx-x-xx.compute-x.amazonaws.com)
3.rootのパスワード変更(sudo passwd)
4.ユーザーの追加(adduser cyborgninja, passwd cyborgninja)
5.ユーザーディレクトリと.sshフォルダ作成(mkdir ~cyborgninja/.ssh)
6.手元でプライベートキーの作成
7.SCPで放り投げる
8.鍵ファイルを移動、リネーム
9.SSHで接続を試して完了



1.AWSのアカウント開設およびEC2のインスタンス作成

公式サイトのアカウント作成の流れを参照

また、[PPT]仮想サーバ(Amazon EC2)を立ち上げるも参照してください。

GUIがあるのでこれは簡単。



2.sshのコマンドでec2-user@でとりあえずつなぐ

アマゾンのインスタンスを右クリックして「Connect」とすると以下のような説明が書かれたウィンドウが現れます

1.Open an SSH client.
2.Locate your private key file (amazon.pem). The wizard automatically detects the key you used to launch the instance.
3.Your key file must not be publicly viewable for SSH to work. Use this command if needed:
chmod 400 amazon.pem
4.Connect to your instance using its Public DNS. [ec2-xxx-xx-x-xx.compute-x.amazonaws.com].

1.SSHクライアントを立ち上げましょう。ターミナルとかTeratermとか。
2.インスタンスを作った時に作成したamazon.pemを手元に用意しましょう。
3.amazon.pemは0400などに変更しましょう。オーナー以外の権限は切りましょう(オーナー以外が見れたり書けたりするとつながりません)。
4.SSHで接続しましょう。


SSHのコードはこんな感じかな。

$ ssh -i XXXX.pem ec2-user@ec2-xxx-xx-x-xx.compute-x.amazonaws.com

「XXXX.pem」は、自身のpem(ex: ~/.ssh/amazon.pem)、
「ec2-xxx-xx-x-xx.compute-x.amazonaws.com」は、AWS画面上で上記手順中に表示されるアドレスで。



3.rootのパスワード変更

接続後におもむろに、

$ sudo passwd

とタイプ。

パスワード入れましょう。



4.ユーザーの追加

rootでいきなり接続するのは基本的に御法度なので、ユーザー作成。

$ adduser cyborgninja
$ passwd cyborgninja

cyborgninjaというユーザー名はご自由にどうぞ。
そんで作ったらパスワードも設定しましょう。

作ったユーザーにsudo権限を付与しましょう。

$ vim /etc/sudoers
root ALL=(ALL) ALL

という記述があると思います。
そこに続けて書いておくか、末尾に、以下を書気加えてください。

cyborgninja ALL=(ALL) ALL


5.ユーザーディレクトリと.sshフォルダ作成

とりあえず後でプライベートキーを設置しますんでディレクトリを作っておきます。

$ mkdir ~cyborgninja/.ssh

一旦ここでexitしましょう。
SSH接続は終えて、手元にもどってきてください。



6.手元でプライベートキーの作成

ローカル状態で

$ ssh-keygen -t rsa

これで秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が作成される。



7.SCPで放り投げる

SCP用のツールとか使ってもいいんですがコマンドラインのまま行きましょう。

$ scp -i XXXX.pem ~/.ssh/id_rsa.pub root@ec2-xxx-xx-x-xx.compute-x.amazonaws.com:/home/ec2-user/

SSHと似ていますが頭がSCPとなってますので注意。



8.鍵ファイルを移動、リネーム

SSHで接続してアップした「id_rsa.pub」を、作成したユーザーのhomeディレクトリに入れて接続できるようにします。

$ mkdir /home/cyborgninja/.ssh
$ sudo cp id_rsa.pub /home/cyborgninja/.ssh/authorized_keys

これらの公開鍵および.sshのディレクトリのパーミッションは他人が触れないようにという設定(ex:600など)に設定するのは一緒。



9.SSHで接続を試して完了

実際に接続を試してみて完了です。

$ ssh cyborgninja@ec2-xxx-xx-x-xx.compute-x.amazonaws.com

 

さてこれが果たして自分自身のログにきちんとなるのか?w


参考サイト:http://d.hatena.ne.jp/torazuka/20110420/ssh

※20130710 SSH接続時のユーザー名などを修正

機械忍者

某SEO会社(?)勤務。 多分日本語よりHTMLの方が得意です。 最近はRubyとかいうキラキラな言語も勉強中です。 SEOはもう標準スキルになってきてると思うので正直もうあんまり昔ほどの熱意は感じません。 新たに躍動してる人も多いですしね。 だれか強化骨格コスプレあったら教えてください。

コメント

  1. […] 」キーペアで作成した秘密鍵が置かれているディレクトリ/秘密鍵ファイル名 「xx.xxx.xxx.xx」Public IP(EC2 → Running Instancesで確認できます) ※秘密鍵の設定がまだの方は、この記事を参考に! […]

  2. […] ひとまず参考にしているサイトはコチラ↓ Amazon EC2 を無料でいじってみる(その3 MacからSSH接続編) 第5回 Amazon EC2 でサーバ構築に挑戦 (橋本英勝) Amazon ec2にSSHで接続する […]