Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use SSH instead of HTTP for Git submodules?

Why are people having this problem?

$ git clone --recursive [email protected]:acani/Chats.git Cloning into 'Chats'... Permission denied (publickey). fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

https://github.com/acani/Chats/issues/53#issuecomment-118014684

I've read some answers that say to change the submodule URL from SSH to HTTP, but why should I have to do that. I don't want to do that. I want to keep it SSH so that I don't have to enter my username & password into Terminal if I want to push. Everyone can clone the SSH URL fine, so why can't they recursively clone it as a submodule?

like image 959
ma11hew28 Avatar asked Jul 02 '15 12:07

ma11hew28


2 Answers

As a workaround, you can try using https url for any github repo:

cd myParentRepo
git config url.https://github.com/.insteadOf ssh://[email protected]/
# or
git config url.https://github.com/.insteadOf [email protected]:
like image 165
VonC Avatar answered Sep 18 '22 01:09

VonC


The SSH protocol doesn’t support anonymous access to a Git repository.

So, don't use the SSH protocol. Instead, use either the Smart HTTP protocol (recommended) or the Git protocol.

For every submodule URL in your repository's .gitmodules file, replace [email protected]: with either https://github.com/ (to use the Smart HTTP protocol) or git://github.com/ (to use the Git protocol).

More info: Git - The Protocols

like image 21
ma11hew28 Avatar answered Sep 22 '22 01:09

ma11hew28