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]:

sshd_config
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 . (1)
1 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