[aws][amazon][ec2] Amazon ec2にSSHで接続する
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のコードはこんな感じかな。
[code language=”shell”]
$ ssh -i XXXX.pem ec2-user@ec2-xxx-xx-x-xx.compute-x.amazonaws.com
[/code]
「XXXX.pem」は、自身のpem(ex: ~/.ssh/amazon.pem)、
「ec2-xxx-xx-x-xx.compute-x.amazonaws.com」は、AWS画面上で上記手順中に表示されるアドレスで。
3.rootのパスワード変更
接続後におもむろに、
[code language=”shell”]
$ sudo passwd
[/code]
とタイプ。
パスワード入れましょう。
4.ユーザーの追加
rootでいきなり接続するのは基本的に御法度なので、ユーザー作成。
[code language=”shell”]
$ adduser cyborgninja
$ passwd cyborgninja
[/code]
cyborgninjaというユーザー名はご自由にどうぞ。
そんで作ったらパスワードも設定しましょう。
作ったユーザーにsudo権限を付与しましょう。
[code language=”shell”]
$ vim /etc/sudoers
[/code]
root ALL=(ALL) ALL
という記述があると思います。
そこに続けて書いておくか、末尾に、以下を書気加えてください。
cyborgninja ALL=(ALL) ALL
5.ユーザーディレクトリと.sshフォルダ作成
とりあえず後でプライベートキーを設置しますんでディレクトリを作っておきます。
[code language=”shell”]
$ mkdir ~cyborgninja/.ssh
[/code]
一旦ここでexitしましょう。
SSH接続は終えて、手元にもどってきてください。
6.手元でプライベートキーの作成
ローカル状態で
[code language=”shell”]
$ ssh-keygen -t rsa
[/code]
これで秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が作成される。
7.SCPで放り投げる
SCP用のツールとか使ってもいいんですがコマンドラインのまま行きましょう。
[code language=”shell”]
$ scp -i XXXX.pem ~/.ssh/id_rsa.pub root@ec2-xxx-xx-x-xx.compute-x.amazonaws.com:/home/ec2-user/
[/code]
SSHと似ていますが頭がSCPとなってますので注意。
8.鍵ファイルを移動、リネーム
SSHで接続してアップした「id_rsa.pub」を、作成したユーザーのhomeディレクトリに入れて接続できるようにします。
[code language=”shell”]
$ mkdir /home/cyborgninja/.ssh
$ sudo cp id_rsa.pub /home/cyborgninja/.ssh/authorized_keys
[/code]
これらの公開鍵および.sshのディレクトリのパーミッションは他人が触れないようにという設定(ex:600など)に設定するのは一緒。
9.SSHで接続を試して完了
実際に接続を試してみて完了です。
[code language=”shell”]
$ ssh cyborgninja@ec2-xxx-xx-x-xx.compute-x.amazonaws.com
[/code]
さてこれが果たして自分自身のログにきちんとなるのか?w
参考サイト:http://d.hatena.ne.jp/torazuka/20110420/ssh
※20130710 SSH接続時のユーザー名などを修正
4件のフィードバック
[…] 」キーペアで作成した秘密鍵が置かれているディレクトリ/秘密鍵ファイル名 「xx.xxx.xxx.xx」Public IP(EC2 → Running Instancesで確認できます) ※秘密鍵の設定がまだの方は、この記事を参考に! […]
[…] ひとまず参考にしているサイトはコチラ↓ Amazon EC2 を無料でいじってみる(その3 MacからSSH接続編) 第5回 Amazon EC2 でサーバ構築に挑戦 (橋本英勝) Amazon ec2にSSHで接続する […]
[…] [aws][amazon][ec2] Amazon ec2にSSHで接続する […]
[…] [aws][amazon][ec2] Amazon ec2にSSHで接続する […]