これで2時間くらい奪われたのでメモ()
間違いなどございましたら気兼ねなくおっしゃっていただければ幸いです!
まとめ
sudo
を付けてgit clone
をしてしまうと、
コマンド実行ユーザーでなくrootのユーザーとしてssh接続が実行されてしまうため注意!
(ssh接続に必要な秘密鍵もrootのユーザーのものが使われてしまいます!)
2時間前のぼく
「リポジトリクローンするよ」
実行コマンド
git clone [任意のリポジトリのパス(ssh)]
エラーメッセージ
fatal: could not create work tree dir '[任意のリポジトリの名前]': Permission denied
「Permission deniedってあったからsudoつけてcloneしたよ」
実行コマンド
sudo git clone [任意のリポジトリのパス(ssh)]
エラーメッセージ
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.
「Permission denied (publickey)ってあったからsshのチェックしたよ」
実行コマンド
ssh -T git@github.com
返ってきたメッセージ
Hi [ユーザー名]! You've successfully authenticated, but GitHub does not provide shell access.
「あれ...sshは接続できてるな...なんでcloneできないの...」
↑sudo git clone
でrootユーザーの秘密鍵を使ってssh接続しようとしてたからですね、ばーかばーか
解決法
下記のようなコマンドで一時的に権限を与え、
git clone
(sudoなし!)をしてあげることでcloneできました!
(clone後、権限を元に戻すのを忘れないようにしてくださいね!)
sudo chown [ユーザー名] [cloneするディレクトリ]
sudo chmod 777 [cloneするディレクトリ]