はじめに
AWSにRailsアプリをデプロイする過程で、
Gitとの連携がうまくいかなかったので、解決策をメモに残します。
接続確認
鍵登録後 SSH コマンドで GitHub に挨拶してみます。
$ ssh -T git@github.com
を実行してみて、
Hi [account_name] You've successfully authenticated, but GitHub does not provide shell access.
がかえってくれば接続 OK です。
これを目指します。
パーミッションをチェックする
今回は大丈夫でしたが
鍵のパーミッションがゆるい場合、以下のように
デカデカと警告が出るのでこちらはすぐ分かります。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
:
:
:
こんな感じで堂々と出る。
これは鍵のパーミッションを適切に締めてあげれば OK 。
chmod を実行します。
$ chmod 600 ~/.ssh/aws_git_rsa
$ chmod 644 ~/.ssh/aws_git_rsa.pub
権限変更後、この様になっていれば OK です。
$ ls -la ~/.ssh/ | grep aws_git_rsa
-rw------- 1 username staff 1831 May 4 07:48 aws_git_rsa
-rw-r--r-- 1 username staff 404 May 4 07:48 aws_git_rsa.pub
接続時の鍵をチェックする
v オプションを付けることで、SSH 接続のデバッグログをチェックすることができます。
$ ssh -vT git@github.com
を実行します。
すると、ズラズラとログが出てきます。
OpenSSH_7.9p1, LibreSSL 2.7.3
debug1: Reading configuration data /home/tatsuki/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: /etc/ssh/ssh_config line 52: Applying options for *
debug1: Connecting to github.com port 22.
debug1: Connection established.
debug1: identity file /home/tatsuki/.ssh/id_rsa type -1
:
上から順によくよく覗いてみると
GitHub に登録した鍵は aws_git_rsa ですが、どうやら id_rsa が使われているようです。。。
そりゃ、認証できないはず(笑)
今回の原因
今回は SSH の設定が誤っていました。
はじめ、
$ vim ~/.ssh/config
Host github
Hostname github.com
User git
IdentityFile ~/.ssh/aws_git_rsa
というように 設定を入れていました。
ホストを github としていたため、
github.com へ接続するときにこの設定がマッチしていなかったらしい。
SSH 設定を次に修正すると、問題なく接続できました。
Host github github.com ←コイツを追加
Hostname github.com
User git
IdentityFile ~/.ssh/aws_git_rsa