Como criar um repositório Git remoto usando o SSH

Abordarei a criação de um repositório Git remoto usando o SSH num ambiente Linux.
Não incluirei detalhes da configuração do SSH.

É necessário que os seguintes pacotes estejam instalados: git, openssh-server e openssh-client.

Primeiro configure o SSH editando o arquivo /etc/ssh/sshd_config.
Eu recomendo algumas configurações[1]:

Protocol 2 # Permite apenas a versão 2 do protocolo (mais seguro)
PermitRootLogin no # Não permite login como root
PasswordAuthentication no # Não permite login por senha

Não esqueça de iniciar ou reiniciar o servidor SSH.

Agora é necessário criar um usuário para acesso ao Git através do SSH.
Eu recomendo que o nome do usuário seja git e que seja criado com o seguinte comando[2]:

useradd -r -m --shell /usr/bin/git-shell git

Definindo o shell do usuário para /usr/bin/git-shell o acesso do usuário será restrito aos comandos do Git[3].
O diretório pessoal do usuário git será criado em /home/git.

Se você não tem uma chave para o SSH, crie-a com o comando ssh-keygen (usando seu usuário).
Será criada uma chave pública e privada em ~/.ssh, a chave pública tem o sufixo .pub (nunca compartilhe sua chave privada).
Agora é necessário adicionar sua chave pública a lista de chaves autorizadas do usuário git, para isso faça o seguinte:

mkdir /home/git/.ssh
cat /home/seu_usuario/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys

Supondo que o nome de sua chave pública seja id_rsa.pub.

Agora será necessário criar um repositório no diretório pessoal do usuário git.
Para criar um repositório para o projeto ProjetoTeste, faça o seguinte:

mkdir /home/git/ProjetoTeste
cd /home/git/ProjetoTeste
git init --bare

Agora é necessário garantir que tudo pertença ao usuário git, faça o seguinte:

cd /home/git
chown -R git.git . # não esqueça do ponto no final

Isso é tudo.

Para clonar o repositório use o seguinte comando:

git clone git@ip_do_servidor:ProjetoTeste

Referência:
1- http://linux.die.net/man/5/sshd_config ou man 5 sshd_config.
2- http://linux.die.net/man/8/useradd ou man 8 useradd.
3- http://linux.die.net/man/1/git-shell ou man 1 git-shell.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.