I want to create public git repository on my dedicated server for anyone to clone but it keeps asking me for password for git user.
I have created user named git without password. Used:
passwd -d git
Unfortunately every time I try to do:
git clone git@myhost:myrepo.git
I'm getting asked for password.
I have tried setting in sshd_config
Match user git
PermitEmptyPasswords yes
PasswordAuthentication yes
With either yes and no for PasswordAuthentication
but still no use.
It seems doing it over ssh is impossible. It will always ask for password unless you copy your public key.
The solution is to use git daemon
and clone repository over git:// protocol
git clone git://hostname/directory
For more information about it I suggest git help daemon
Tip:
Remember you need to give it read privileges. From my experience setting others: chmod -R o+r project.git
won't work for some reason. You have to permit git access via either author or group. You can disallow write access to your repo on daemon level ( default behaviour ).
Same procedure as setup passwordless ssh login.
generate a passphase less private/public key pair
ssh-keygen <your-key-filename>
ssh-copy-id to your host server
add a config file under your client .ssh folder (note: this step is optional), the contents of the config file similar to the following:
Host <git-server>
Hostname <ip-of-your-git-server>
User <your-git-user-name>
Port <your-git-server-port>
IdentityFile <path-to-your-private-key>
try to login your host through ssh:
ssh <git-server>
now you can clone, push, pull, whatever to your git-server
Edit: try to google "password less ssh login" for more detail and tricks.