Encaminha o ssh para o usuário do Git para o servidor Git

4

É surpreendentemente difícil encontrar informações sobre esse problema simples.

Como muitas pessoas, executamos um servidor gitlabs / gogs em uma instância remota. Atualmente, ele escuta na porta 10022. Também executamos o ssh nessa instância para administrar o servidor. Ele escuta na porta 22.

Gostaríamos que o servidor ssh escutando na porta 22 para encaminhar as conexões do Git @ SOMENTE para o servidor Git no 10022.

Dessa forma, quando as pessoas usam o Git localmente, elas não precisarão especificar manualmente a porta do nosso servidor Git remoto a cada vez.

Como podemos fazer isso?

    
por DMCoding 07.02.2016 / 14:36

2 respostas

1

Eu nunca fiz isso, mas talvez isso faça o que você quer:

Você pode colocar um bloco Match para o usuário git em sshd_config , que contém ForceCommand . O comando forçado pode ser um login ssh para o servidor real. Você pode usar a autenticação de chave pública sem frase secreta para que os usuários nem percebam isso.

    
por 07.02.2016 / 14:43
1

Uma abordagem mais simples seria:

Basta dizer aos seus usuários para adicionar um apelido para o seu git-server ao ~/.ssh/config . Então eles têm a mesma conveniência que com o github e você não precisa fazer alguns redirecionamentos estranhos no lado do servidor.

Por exemplo:

# put into ~/.ssh/config
Host mygitlab
Hostname git.example.org
Port 10022

Em seguida, seus usuários podem apenas clonar etc. assim:

$ git clone mygitlab:someuser/somerepo.git
    
por 07.02.2016 / 15:09