WordPress開発で、Git管理をしようとしたが、GitHubにSSH接続できない問題が発生したので、解決までの流れをメモに残したいと思います。
発生した問題
以下のコマンドでGitHubへSSH接続ができているか確認する。
$ ssh github.com
そうすると、次の結果が返ってきます。
username@github.com: Permission denied (publickey).
「Permission denied(アクセス拒否)」、カッコの中には公開鍵書かれていますので、公開鍵か秘密鍵あたりに問題がありそうです。
GitHubのサーバーから「接続してこないでよ」って言われている状態です。
基本的には、鍵まわりでうまくいかない時は、再度公開鍵と秘密鍵を作成し直せば解決するのですが、今回はそれでもうまくいかなかったので、おそらくconfigファイルに書いた内容がよくなかったような気がします。。。
やったこと
まずは、もういちど公開鍵と秘密鍵のペアを作成してみます。
$ ssh-keygen
そうすると、以下の質問が数行ずつ表示されるので y を入力したり、Enterキーを押したりします。
(y/n)? で聞かれたら、y(yes)かn(no)を入力、それ以外ならEnterを押します。
質問の内容としては、既存の公開鍵や秘密鍵を上書きしていいですか?やパスワードを設定しますか?という内容です。
今回は、鍵を上書き、パスワードは設定しないで進めます。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa):
/Users/username/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/username/.ssh/id_rsa
Your public key has been saved in /Users/username/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:*************************** username@MaitaTomoya.local
The key's randomart image is:
+---[RSA 3072]----+
| o==o |
| ***** |
| 色々書かれます |
| !**** |
+----[SHA256]-----+
そうすると、上記のメッセージの通り、ふたつの鍵が作成されます。
- 秘密鍵:/Users/username/.ssh/id_rsa
- 公開鍵:/Users/username/.ssh/id_rsa.pub
次の公開鍵をGitHubに登録します。
まずは、以下のコマンドでクリップボードに公開鍵の内容をコピーします。
pbcopy < ~/.ssh/id_rsa.pub
GitHubの画面で右上のユーザーアイコン→「Setting」→「SSH and GPG keys」→「New SSH key」からキーを設定します。
- Titleは自分がわかればなんでもOK
- Key typeは「Authentication Key」
- Keyに先ほどクリップボードにコピーした公開鍵の内容を貼り付ける
- 「Add SSH key」をクリック
確認
以下のコマンドを実行して接続を確認します。
$ ssh -T git@github.com
以下のメッセージが返ってくればOKです。
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
上記のメッセージが返って来ればSSH接続は成功しています。