git cloneでreact-paginationデモを実行しようと思ったら以下のようなエラーが出現。
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
てなエラーが出た。日本語に訳すと「git@github.com。パーミッションが拒否されました(publickey)。fatal: リモート・リポジトリから読み取れませんでした。」
調べてみると何やらGitに設定したsshキーとやらの設定がおかしいそうです。なんやねんsshキーて。ちょっと面倒くさい予感しかしない。
git cloneコマンドでgit@github.com: Permission denied (publickey)
sshキーはGitで設定した記憶があった。Gitのsettingsを見てみると確かに設定してある👇
でもこれだけだとgit cloneできないらしい。ということで解決策探してみた。
githubとSSH接続できていないとgit cloneできない
ssh接続っていうのは、安全にネットワークを接続するために必要なものらしいです。Secure Shell(セキュアシェル)の略称らしいですね。
Shin
とりあえず公開鍵と秘密鍵を作る必要があるみたい。ちょっと面倒臭そうだけどコマンドでちょろちょろっとやったらすぐできる。
まずはホームディレクトリからsshディレクトリに入ってね。
cd ~/.ssh
ここで次のコマンドを実行して鍵を作ろう。
$ssh-keygen -t rsa
これで自動的に2つの秘密鍵と公開鍵が設定される。lsで中身を確認してみるとid_rsa.pubというファイルがあると思います。これが公開鍵みたいです。
公開鍵をgitと連携しよう
あとは連携するだけです。
gitのプロフィールからsettingsに移動してsshキーの欄を見てみます。
「NewSshkey」ってボタンを押すと上のような画面が表示されるはずなので、こちらに先ほど作った公開鍵の名前と内容をコピペして登録しましょう。
公開鍵ですが、一応ここでは私のは伏せておきます・・・
連携できれば以下のように鍵が緑色に変化します。
これでOK。
連携できないときは・・・
それでも連携できないときは.ssh/にconfigファイルをtouchコマンドで追加してconfig内のファイルの中身を以下の記述でつけて足してみよう。
Host github github.com
HostName github.com
IdentityFile ~/.ssh/id_git_rsa #自分の鍵のファイル名
User git
これで再度連携すれば成功するはず。
git cloneコマンドでgit@github.com: Permission denied (publickey):まとめ
公開鍵と秘密鍵を生成して、公開鍵の方をgithubに連携させればいいみたいですね。
お疲れさまでした。