Git Submodule - Permission Denied

I am not able to clone the submodule existing within my private git repository. I do have access to entire repository,

Have used the below commands but dint work, please help. What is the right way to clone the submodules in an existing repository?

djrecker$ git submodule update --init --recursive
Submodule 'Path' ([email protected]:Path) registered for path 'App'
Cloning into 'Path'...
Permission denied (publickey).
fatal: Could not read from remote repository.

I was facing the same issue. The problem was on your github repo , you might be using some old ssh key.

You need to update the current ssh key.

Steps involved are:

1. vim ~/.ssh/id_rsa.pub
2. copy the ssh key
3. Go to the github settings
4. Select the option ssh keys
5. Remove the old ssh keys not used anymore.
6. Add a new ssh key.
7. Try running the "git submodule update --recursive"

This worked for me !!


  • On Windows:

In my case, it was complaining about the same issue when I was using a regular command line (Git CMD). Then I tried with Git Bash and no issue no more.


I had this issue. In my case, the public key (~/.ssh/id_rsa.pub) wasn't set up on the server properly.

Ensure you're getting all the submodules:

Reference: Git update submodules recursively

# This must be called twice. Once for new and once for existing submodules.
git submodule update --init --recursive
git submodule update --recursive

To diagnose permission issues with your key:

  • Access: Ensure that either: (1) you're cloning a public repo or (2) it's private, but your github account has access.
  • Diagnose with ssh -vT [email protected]. Ensure the key you set up is listed there. For more help on permissions issues, follow this guide: https://help.github.com/articles/error-permission-denied-publickey/
  • Adding a key to Github: https://help.github.com/articles/generating-ssh-keys/

To check details of your submodules

  • Open .gitmodules in the project root folder and ensure things look okay. As recommended by @VonC try cloning them in a separate folder.
  • You might want to switch submodules from using SSH to HTTPS. That will let you type a username and password. But that can cause issues with your teammates and build automation. Speak to them first.