Githubへの認証で「Permission denied」を対応した方法
Githubを使い始めるときに、
認証方法として、
認証を行おうとして、
その時の対応方法については、
上記の記事を参照してください。
今回は、
これらの設定を進める上で、
「Permission denied」
が発生したので、
その際の調査と対応をメモしておきます。
Githubへの認証時のエラー
Githubへの鍵情報の設定などは、
上記で共有した記事を参照して頂いて、
その設定をした上で、
git clone git@github.com:hogehoge/hogehoge.git
というコマンドで、
ローカルリポジトリにファイルを取得しようとしていました。
しかし、
実際に実行してみると、
$ git clone git@github.com:hogehoge/hogehoge.git
Cloning into 'hogehoge'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
このように、
git@github.com: Permission denied (publickey).
というエラーが発生しました。
GithubへのSSHアクセスの確認
ターミナルから、
コマンドでアクセス確認するコマンドが用意されています。
確認コマンド(簡易)
ssh -T git@github.com
確認コマンド(詳細ログあり)
ssh -vT git@github.com
上記のコマンドで、
アクセスした時に、
正常系の終了であれば、
Hi hogehoge!
You've successfully authenticated,
but GitHub does not provide shell access.
このように表示されます。
認証自体はうまく成功した旨と、
GithubはSSHアクセス自体はできないよということが、
レスポンスのメッセージで返答されていますね。
本来は、この状態であれば、
うまくいっているのですが、
この確認コマンドを試してみても、
git@github.com: Permission denied (publickey).
となるので、
うまく認証が通っていません。
先ほどの、
ssh -vT git@github.com
でログを確認すると、
自分が認証したい鍵情報が使われていない
という状況でした。
鍵情報を指定してあげることで対応
実際に先ほどの確認コマンドで、
オプションで鍵情報も指定することができます。
確認コマンド
ssh -T -i ~/.ssh/hogehoge git@github.com
最初の、
ssh -T git@github.com
という確認コマンドに、
自分が使いたい鍵情報を、
-i ~/.ssh/hogehoge
という形で、
「-i」オプションで指定できるので、
ご自身の環境に合わせて鍵情報を指定してあげてください。
自分の環境だと、
ssh -T -i ~/.ssh/hogehoge git@github.com
で鍵情報を指定してあげると、
Hi hogehoge!
You've successfully authenticated,
but GitHub does not provide shell access.
と返答が返ってきたので、
うまく認証が通るようになりました。
これで、
今回の事象が、
鍵情報が指定できていないことが、
原因と考えられますね。
Gitへの認証時の鍵情報を指定する
今回の事象の対応として、
指定の鍵情報を認証時に使うように、
設定を変更していきます。
調整ファイル
~/.ssh/config
調整内容
Host github.com
Hostname github.com
IdentityFile ~/.ssh/id_rsa_hogehoge
TCPKeepAlive yes
IdentitiesOnly yes
こちらを調整することで、
githubにアクセス時に、
指定の鍵情報を使ってくれるようになります。
変更後に、
再度、アクセスを試してみると、
git clone git@github.com:hogehoge/hogehoge.git
でうまく自分のリポジトリにアクセスできました。
こちらもおすすめ
初心者向けの色々な情報はあるけれど、
- 無料でお試しができるスクール
- ホームページなど簡単に作成できる
- 組織で使いたいサービス
について、
少しでも試して良いものがあると、
それを活用することで学習や業務などが効率化できるので、
おすすめのサイトなどをいくつか紹介しておきます