[Sy] Amazon Linux(2017.09 release) と GitHub で鍵を登録してSSH経由で操作するための手順
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.pub
をcat
などで表示して、コピーしておきましょう。 この時、無駄な改行などが入らないように注意してください。
$ 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を選択します。
Settings画面の左側にSSH and GPG keys
というメニューがあるので、選択すると登録済みの鍵のリストが表示され、右上にNew SSH key
というボタンが出てくるので、そのボタンをクリックします。
新しい公開鍵の入力欄が表示されるので、タイトル(わかりやすい名前であればなんでも良いかと)を付けて、Key のテキストエリアに先程コピーした公開鍵のテキスト(id_rsa.pub
の中身をコピーしたもの)を貼り付けてAdd SSH key
ボタンを押します。
エラーが出ずに、以下のように 今付けたタイトルの鍵がリストに表示されれば成功です。
権限(リスト表示の下の部分に書かれている文字)が Read/write となっていることも確認してください。これで読み込み(cloneなど)と書き込み(pushなど)ができるようになります。
エラーが出た場合は、鍵の貼り付けをミスっている可能性が高いです。以下のポイントをチェックしてください。
- 途中で改行が入っていないか?
- 途中で切れてないか?
- 間違って秘密鍵をコピーしてないか?
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上で先程のリストをリロードすると、 鍵の部分が緑色に変わっているはずです。
これで鍵を登録したアカウントの権限があるリポジトリは操作できるようになります。