Reenviar el protocolo ssh a través del túnel ssh | firewall corporativo

CORTO

¿Por qué git pull/push no funciona ahora que ssh behind firewall está funcionando (especialmente ssh git@bitbucket.org ).


Se han hecho preguntas similares, y las he leído. Pero todavía tengo una falta de comprensión.

Estoy sentado detrás de un firewall corporativo y logré establecer una connection ssh (puerto 443) a mi enrutador (DD-Wrt @ Asus RT-N16, sshserver es dropbear) mediante la configuration de ~/.ssh/config (con sacacorchos + proxy http de la compañía).

Como el puerto 22 está bloqueado, pensé que podría configurar un túnel ssh, que me permite usar el puerto 22 para más commands ssh de mi máquina de trabajo, especialmente para usar con git push/pull (usando bitbucket, que no admite el acceso ssh a través del puerto 443 …)

Estaría feliz por alguna input. O tal vez incluso otros enfoques.

Solo estoy notando … git usa su propio command ssh (en $GIT_SSH ), que no consideré. Pero eso sería solo una pequeña parte del problema, ya que incluso ssh git@bitbucket.org no funcionó.

GUIÓN

workmachine -> firewall -> asus_rtn16 -> git repo

EDITAR

El reenvío está funcionando ahora, puedo entrar a todas las máquinas. Git todavía tiene problemas.

~ / .ssh / config

 Host asus HostName myrouter.com User admin Port 443 ProxyCommand C:/cygwin/bin/corkscrew.exe companyproxy proxy_port %h %p IdentityFile C:/cygwin/home/*user*/.ssh/id_rsa Host * ProxyCommand ssh asus nc -w1 %h %p IdentityFile C:/cygwin/home/*user*/.ssh/id_rsa 

No me piden el inicio de session. Agregué la authentication de RSA, pero tampoco me pidieron la contraseña para proteger la key.

Establecí GIT_SSH para apuntar a la ssh derecha, y las routes en la configuration son absolutas.

Esto sucede cuando bash empujar

 $ git push --verbose -u origin --all Pushing to ssh://git@bitbucket.org/*username*/myrepo.git OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Reading configuration data /c/cygwin/home/*user*/.ssh/config debug1: Applying options for asus debug1: Applying options for * debug1: Executing proxy command: exec C:/cygwin/bin/corkscrew.exe *proxy* *port* *router* 443 debug1: permanently_drop_suid: 500 debug1: identity file /c/cygwin/home/<user>/.ssh/id_rsa type 1 debug1: identity file /c/cygwin/home/<user>/.ssh/id_rsa type 1 debug1: Remote protocol version 2.0, remote software version dropbear_0.52 debug1: no match: dropbear_0.52 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: sending SSH2_MSG_KEXDH_INIT debug1: expecting SSH2_MSG_KEXDH_REPLY debug1: Host '[*router*]:443' is known and matches the RSA host key. debug1: Found key in /c/cygwin/home/*user*/.ssh/known_hosts:2 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received DD-WRT v24-sp2 big (c) 2011 NewMedia-NET GmbH Release: 02/17/11 (SVN revision: 16214) debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Offering public key: /c/cygwin/home/*user*/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 279 debug1: PEM_read_PrivateKey failed debug1: read PEM private key done: type <unknown> # freezes here... fatal: Could not read from remote repository. # continues after ctrl + c Please make sure you have the correct access rights and the repository exists. 

Una connection ssh normal debería continuar como

 Enter passphrase for key '/home/*user*/.ssh/id_rsa': debug1: read PEM private key done: type RSA debug1: Authentication succeeded (publickey). Authenticated to *router* (via proxy). debug1: channel 0: new [client-session] debug1: Entering interactive session. debug1: Sending command: nc -w1 sdf-eu.org 22 

DEBUG LV3

git push -u origin --all está fallando

 debug1: Next authentication method: publickey debug1: Offering public key: C:/cygwin/home/*user*/.ssh/id_rsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Server accepts key: pkalg ssh-rsa blen 279 debug2: input_userauth_pk_ok: fp 31:cc:3b:fa:xx:xx:xx:a1:ae:d6:21:97:62:68:fa:f0 debug3: sign_and_send_pubkey debug1: PEM_read_PrivateKey failed debug1: read PEM private key done: type <unknown> 

ssh -vvv asus está teniendo éxito

 debug1: Next authentication method: publickey debug1: Offering RSA public key: C:/cygwin/home/*user*/.ssh/id_rsa debug3: send_pubkey_test debug2: we sent a publickey packet, wait for reply debug1: Server accepts key: pkalg ssh-rsa blen 279 debug2: input_userauth_pk_ok: fp 31:cc:3b:fa:xx:xx:xx:a1:ae:d6:21:97:62:68:fa:f0 debug3: sign_and_send_pubkey: RSA 31:cc:3b:fa:xx:xx:xx:a1:ae:d6:21:97:62:68:fa:f0 debug1: Authentication succeeded (publickey). Authenticated to *router* (via proxy). 

Parece que hay algo mal con debug3: sign_and_send_pubkey .


Datos adicionales

chmod de ~/ es 755, chmod de id_rsa.pub es 644 e id_rsa tiene 600

Descargo de responsabilidad: si se permite este tipo de connection, pida a su personal de security que lo habilite para usted. Si no está permitido y sin embargo utiliza un túnel para eludir el concepto de security de su empresa, ¡tendrá muchos problemas! Ten cuidado.

Ya logró llegar a su enrutador. En este caso, usaría

 ProxyCommand ssh router nc -w1 %h %p 

en su .ssh / config.

Esto primero abrirá una connection ssh a su enrutador y se conectará al host de destino real y luego comenzará la connection ssh real. También git debería funcionar con este tipo de configuration.