はじめに
EC2インスタンスを起動してからgithubと連携できる様になるまでの手順を、自分が疑問に思ったことをQ and A形式で掲載します。
至らない点も多々あると思いますがよろしくお願いします!
対象者
- 初学者
- AWSを学習中の方
- シェル(ssh)でAWSのEC2インスタンスに接続できた方
この記事で得られること
- AWSでgithubと連携するまでの手順
- パッケージマネジャ(yum)の概要
開発環境
- Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type
- ngnix
- ruby 2.7.1
- rails 6.3.1
前提
Q.なぜ連携(なぜssh認証する)必要があるのか?
A.githubでは自分のアカウントを使用してサーバーにユーザーとしての認証を行なっています。
同様に、EC2インスタンスという、githubから見て「誰なのか分からない・・・」という状態を「誰なのか分かる!」という状態にします。
また、git clone中にセキュリティ観念上、悪意あるデータを通信中に書き込まれる、という可能性がある。通信をssh通信で暗号化することにより、この様なことが防げるメリットがある。
手順(コードのみ)
-
[ec2-user@ElsticIPアドレス]$ sudo yum -y update
-
[ec2-user@ElsticIPアドレス]$ sudo yum install git
-
[ec2-user@ElsticIPアドレス]$ git version # gitがインストールされているか確認
-
[ec2-user@ElsticIPアドレス .ssh]$ ssh-keygen -t rsa -b 4096
※.sshディレクトリで実行!!
※途中で鍵の名前など設定する入力箇所があるが、全て何も入力しないでenter(3回)を押せばOK。デフォルトの鍵の名前になる。 -
[ec2-user@ElsticIPアドレス]$ cat ~/.ssh/id_rsa.pub # 表示された文字列を全てコピーする
-
以下のURLにアクセス
https://github.com/settings/keys -
SSH Keys欄にて、公開鍵のタイトル(自由に入力してOK)と公開鍵の内容(5.でコピーした内容)をペーストする。
-
[ec2-user@ElsticIPアドレス]$ ssh -T git@github.com
※以下の文言が表示されればOK。yesかno問われたら全てyes
Hi ! You've successfully authenticated, but GitHub does not provide shell access.
この工程が終わればOKとなります!git cloneができる様になります。
捕捉知識
Q.sudo yum -y update
って何? 何でupdateするの?
A. yumはLinux向けのパッケージマネジャの1つです。
パッケージマネジャとは、様々なアプリケーションやソフトの管理を行うソフトです。
このパッケージマネジャではセキュリティ等に関するソフトも管理されており、抽象的な言い方をすれば「yumにソフト管理を委託している」ということになります。
定期的にupdateすることで、EC2インスタンス(Linux)のメンテナンスができます。
Q. [ec2-user@ElsticIPアドレス .ssh]$ ssh-keygen -t rsa -b 4096
で鍵名を設定しないのはなぜ?
A. 鍵名が「id_rsa.pub」で作成されるからです。それ以外の名前で鍵を作成すると[ec2-user@ElsticIPアドレス]$ ssh -T git@github.com
を行うために、~/.ssh/configファイルで別途設定を行う必要があります。そのため、初学者向けの手法と言えるかもしれません。
Q. 公開鍵と秘密鍵の使い方がよく分からない
A. 私も詳細分からないのですが、ひとまず公開鍵⇨サーバー外でも公開して良い鍵、秘密鍵⇨サーバー外に出してはならない、と覚えておきましょう!