Como o SSH encaminha o usuário git para o gitserver?

5

Estou tentando configurar o acesso ssh / git por meio de um gate ssh, mas o googleing está vazio. Basicamente eu quero que qualquer conexão ao meu ssh gate do user git seja encaminhada para o meu servidor ssh para que os comandos push e pulls possam ser feitos remotamente. No entanto, se qualquer outro usuário se conectar, eu quero que eles estejam logados como de costume.

internet--(git)-->gate--(git)--> git-server

internet--(user)-->gate

Qualquer ajuda ou conselho seria muito apreciado.

Uma maneira de fazer isso no lado do cliente é adicionar o seguinte ao seu .ssh / config:

Host git.life-hack.org
    HostName          git.life-hack.org
    ProxyCommand      ssh [email protected] nc %h %p
    User              git

Mas eu esperava que houvesse uma maneira de fazer isso do lado do servidor.

    
por Johan 13.10.2012 / 06:08

1 resposta

1

Suponho que você esteja falando sobre Linux e OpenSSH. Por favor, informe se este não é o caso.

Eu entendo que o git-server não é acessado diretamente da internet. Eu não acho que você pode fazer o que você está propondo automaticamente apenas usando o SSH.

Vamos supor que o gate esteja no 2.2.2.2 (IP público) e o git-server esteja no 10.10.10.10 (RFC1918)

Dependendo do que exatamente você está tentando alcançar e quais são as restrições, você pode:

1) faça o usuário se conectar ao git-server encaminhando uma porta primeiro:

ssh -N -L2222:10.10.10.10:22 [email protected]

e, em seguida, eles poderiam fazer login como:

ssh -p2222 git@localhost

2) no portão, você poderia encaminhar conexões feitas para 2.2.2.2:2222 a 10.10.10.10:22 para que seu usuário faça login como: ssh -p2222 [email protected]

Isso exigiria alguns comandos executados no gate:

# enable forwarding
echo -n 1 > /proc/sys/net/ipv4/ip_forward
# DNAT packets destined for 2.2.2.2:2222 to 10.10.10.10:22
iptables -A PREROUTING -d 2.2.2.2 -p tcp --dport 2222 -j DNAT --to-destination 10.10.10.10:22
# allow responses from 10.10.10.10 to get through
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# allow forwarding connections to 10.10.10.10:22
iptables -A FORWARD -p tcp --dport 22 -d 10.10.10.10 -j ACCEPT

Não há nada específico para fazer no git-server.

    
por 16.10.2012 / 21:18