git clone without asking for users password

2019-07-07 17:28发布

问题:

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.

回答1:

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 ).



回答2:

Same procedure as setup passwordless ssh login.

  1. generate a passphase less private/public key pair

    ssh-keygen <your-key-filename>
    
  2. ssh-copy-id to your host server

  3. 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>
    
  4. try to login your host through ssh:

    ssh <git-server>
    
  5. now you can clone, push, pull, whatever to your git-server

Edit: try to google "password less ssh login" for more detail and tricks.