⬆️ ⬇️

Installing gitolite on a Centos server

Killed a couple of days to install Gitolite. It seems like a bunch of instructions on the Internet, and the process is globally not complicated. But in no article is there a complete order of commands that need to be done in order for the whole business to work without problems.



It is understood that the reader understands what git and gitolite is and is able to work with them, only installation is considered.



In the code you need to replace your values:

server_name_or_ip - Server name or IP address

username - The name of the user who will become the gitolite administrator.



Operating systems: server - Centos 6.6, computer from which I work - OS X 10.10.2

')

Key Access Setup



On the server, create a user git and give it a password:



useradd git passwd git 


On the local machine, create a key for the current user:



 ssh-keygen -t rsa -b 2048 


For greater safety, replace the 2048 with 4096.

And we send the key to the server (the variant was tested only on the mac - but, it seems, the Linux syntax is no different):



 cat ~/.ssh/id_rsa.pub | ssh git@server_name_or_ip "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys" 


Let 's set the server rights for the .ssh folder and the key file (without this, key authorization will not work):



 chmod 700 /home/git/.ssh/ chmod 600 /home/git/.ssh/authorized_keys 


Go to the server in the file / etc / ssh / sshd_config (not to be confused with ssh_config) and uncomment the lines:



 RSAAutentification yes PubkeyAutentification yes AuthorizedKeysFile .ssh/authorized_keys 


Restart the sshd daemon on the server :



 service sshd restart 


We check ssh access from a local machine without a password:



 ssh -i ~/.ssh/id_dsa git@server_name_or_ip 


Install gitolite



On the server :



 su git cd ~ git clone git://github.com/sitaramc/gitolite mkdir -p ~/bin gitolite/install -to ~/bin gl-setup -q ~/username.pub 


Then go to the server in the file /home/git/.ssh/authorized_keys and delete the first key that was not created gitolite - this is important, otherwise it will not work (one of the options can also just use 2 different keys - the main thing is to understand that if there is a key that authorizes via SSH, then gitolite will not work with it).



Check the operation of the keys ( on the server ):



 /home/git/gitolite/src/gitolite sshkeys-lint 


Path to the gitolite administration repository:



 git@server_name_or_ip:gitolite-admin 


For the sake of security, we close access to the git user via ssh. We leave only the opportunity to work with git. To do this, go to the / etc / passwd file and change the line from the git user from / bin / bash to / usr / bin / git-shell



If something went wrong



Delete ( on the server ) user git:



 userdel git 


Delete all files from its folder and the home directory itself. I have this / home / git /.



We are trying to do it all over again.

Source: https://habr.com/ru/post/253413/



All Articles