Pregunta ¿Cómo SSH puerta reenvío git usuario a gitserver?


Estoy tratando de configurar el acceso ssh / git a través de una puerta ssh, pero googleing ha salido vacío. Básicamente, quiero que cualquier conexión a mi compuerta ssh desde el usuario git se reenvíe a mi servidor ssh para que se puedan realizar de forma remota los empujes y las extracciones. Sin embargo, si algún otro usuario se conecta, quiero que se conecte como de costumbre.

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

internet--(user)-->gate

Cualquier ayuda o consejo sería muy apreciada.

Una forma de hacer esto en el lado del cliente es agregar lo siguiente a su .ssh / config:

Host git.life-hack.org
    HostName          git.life-hack.org
    ProxyCommand      ssh darkclown@www.life-hack.org nc %h %p
    User              git

Pero esperaba que hubiera una manera de hacer este lado del servidor.


5
2017-10-13 04:08


origen




Respuestas:


Supongo que estás hablando de Linux y OpenSSH. Por favor avise si este no es el caso.

Entiendo que el servidor git no es directamente accesible desde internet. No creo que puedas hacer lo que estás proponiendo automáticamente solo usando SSH.

Asumamos que gate está en 2.2.2.2 (IP pública) y git-server está en 10.10.10.10 (RFC1918)

Dependiendo de lo que estás tratando de lograr y de cuáles son las restricciones, podrías:

1) hacer que el usuario se conecte al servidor git primero un puerto:

ssh -N -L2222:10.10.10.10:22 user@2.2.2.2

y luego podrían iniciar sesión como:

ssh -p2222 git@localhost

2) en la puerta, podría reenviar las conexiones realizadas a 2.2.2.2:2222 a 10.10.10.10:22 para que su usuario inicie sesión como: ssh -p2222 git@2.2.2.2

Esto requeriría algunos comandos ejecutados en la puerta:

# 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

No hay nada específico que hacer en el servidor git.


1
2017-10-16 19:18



Gracias por la entrada, he llegado al uso del método que edité en la parte superior, ya que parece ser imposible hacerlo desde el lado del servidor. Su método es bastante similar y, de hecho, me recordó a este método, así que muchas gracias :) La razón por la que lo prefiero es en el lado del servidor, por lo que las computadoras portátiles que se usan tanto de forma local como externa no tienen problemas. - Johan