Syntax Error.

[Sy] Amazon Linux(2017.09 release) と GitHub で鍵を登録してSSH経由で操作するための手順

2017/10/03 (更新: 2017-10-27)

Amazon Linux(2017.09 release)GitHub のリポジトリに対して ssh 経由で clone や push 等の操作ができるように 鍵を作成してGithubに登録する手順です。

1. EC2インスタンスで鍵を作成

EC2インスタンスにログインして、以下のコマンドを実行します。

$ ssh-keygen -t rsa

Generating public/private rsa key pair.

(作成するファイルパスを入力します。今回はそのままEnter)
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa):

(パスワードを付与できますが、そのままEnter)
Enter passphrase (empty for no passphrase):

(パスワードの再入力。そのままEnter)
Enter same passphrase again:

(以下のパスに鍵が作成されます)
Your identification has been saved in /home/ec2-user/.ssh/id_rsa.
Your public key has been saved in /home/ec2-user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:yDXuYef/acMMZjp7b6jYu55nB6hgTYFOobCI4s5Ngw4 ec2-user@ip-10-0-1-159
The key's randomart image is:
+---[RSA 2048]----+
|  .   .o         |
|.. o .o .        |
|+ . .o  o.       |
|o .  ..+..       |
|Eo o  ooS ..     |
|= o . oo.+. =    |
| + . . ....+ *   |
|        .ooo= B. |
|        ..OX.*+. |
+----[SHA256]-----+

2. 公開鍵をコピーする

作成したファイルは、先程指定したパスに作成されています。

$ $ ll ~/.ssh
total 12
-rw------- 1 ec2-user ec2-user  390 Oct 20 11:02 authorized_keys
-rw------- 1 ec2-user ec2-user 1679 Oct 27 03:45 id_rsa
-rw-r--r-- 1 ec2-user ec2-user  404 Oct 27 03:45 id_rsa.pub

id_rsaというファイルと、id_rsa.pubという2つのファイルが作成されています。 この2つはどちらも必要なので、片方だけ削除したりしないようにしてください。 この2つのファイルはどちらも中身はテキストです。

id_rsaは、 秘密鍵 と呼ばれるもので、誰にも中身を知られてはいけません。

id_rsa.pubとなっている方が、 公開鍵 と呼ばれるもので、これをGitHubに登録します。

id_rsa.pubcatなどで表示して、コピーしておきましょう。 この時、無駄な改行などが入らないように注意してください。

$ cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNf3DDrP8XnoV7Rg4wiCorlYMUanoX5hIICjQknE5WJGRhxLj82K+n3B7XdQsy7pe3whm1rCQ23AsyWjoBnVcZoVcteX3YI52C/qOKSSLoZC39NvgjqfBTAMfGFPdqJGuXgFz5NhFPLf08nhU9QIhhB3T8ErpAVopRFFuPEavIba8Ky+OjT6jjQ/8ozedrTYkyvG8an66tZJXj0k+dQ0Ts5i0F8ztHPiOxMqrgdpQbLvNcPKXO0VFOELZnCFYgRYkahrEd1brmDyE3FBdc6YGXUCspD82M4NcV41CyqLwAJDXLSVmRzxs1LXpOGVu9wCUCAacQcZNWR/7kVeXEGIi1 ec2-user@ip-10-0-1-159

3. GitHubに公開鍵を登録

GitHubにログインして、右上のメニューからSettingsを選択します。

GitHub Settings

Settings画面の左側にSSH and GPG keysというメニューがあるので、選択すると登録済みの鍵のリストが表示され、右上にNew SSH keyというボタンが出てくるので、そのボタンをクリックします。

GitHub SSH and GPG keys

新しい公開鍵の入力欄が表示されるので、タイトル(わかりやすい名前であればなんでも良いかと)を付けて、Key のテキストエリアに先程コピーした公開鍵のテキスト(id_rsa.pubの中身をコピーしたもの)を貼り付けてAdd SSH keyボタンを押します。

GitHub Add Key

エラーが出ずに、以下のように 今付けたタイトルの鍵がリストに表示されれば成功です。

権限(リスト表示の下の部分に書かれている文字)が Read/write となっていることも確認してください。これで読み込み(cloneなど)と書き込み(pushなど)ができるようになります。

GitHub Added Key

エラーが出た場合は、鍵の貼り付けをミスっている可能性が高いです。以下のポイントをチェックしてください。

  • 途中で改行が入っていないか?
  • 途中で切れてないか?
  • 間違って秘密鍵をコピーしてないか?

4. SSHの疎通確認

無事に鍵の登録ができたら、もう一度EC2インスタンスへ戻ります。

以下のコマンドを実行することで、SSHでGitHubと通信が可能になっているか確認することができます。

$ ssh -T git@github.com
The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.
Hi utano320! You've successfully authenticated, but GitHub does not provide shell access.

うまく言っていれば、最後の... successfully authenticatedというのが表示されます。

そしてGitHub上で先程のリストをリロードすると、 鍵の部分が緑色に変わっているはずです。

GitHub SSH Test

これで鍵を登録したアカウントの権限があるリポジトリは操作できるようになります。