状況
-
git clone git@github.com:username/repo_name.git
をしようとしたら以下のエラーが出る。
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.
- リポジトリは絶対にある。
- 公開鍵も登録した。
- なぜ...
解決策
こちらのサイトに助けていただきました。
SSHで接続する際にデフォルトで読みにいく秘密鍵のパスは「~/.ssh/id_rsa」「~/.ssh/id_dsa」「~/.ssh/identity」のいずれかです。それ以外のパスで置いても読み込まれません。
公開鍵に名前を付けていたので、鍵を読みに行ってくれていなかったということでした。.ssh/config
のファイルを作成して以下をファイル内に記述。
Host github github.com
HostName github.com
IdentityFile ~/.ssh/#秘密鍵のファイル名
User git
Port 22
これでいけるか...!
ssh接続テストをしてみた。
ssh -T git@github.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for '秘密鍵のpath' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "秘密鍵のpath": bad permissions
git@github.com: Permission denied (publickey).
残念。
秘密鍵のパーミッションがヤバイとのことなので、ファイルのプロパティーから変更。(書き込みをできないようにした)
これで接続成功しました。
ちなみにコマンドラインからパーミッションを変更したい場合、windowsだとchmodがなくてicaclsというコマンドらしい。