guardar - Uso de Git en Windows, detrás de un proxy HTTP, sin almacenar la contraseña del proxy en el disco
gitlab (4)
Estoy usando Git en Windows, en una red corporativa donde estoy detrás de un proxy HTTP con autenticación básica. El SSH saliente no funciona, así que tengo que usar HTTPS a través del proxy.
Soy consciente de cómo usar git config http.proxy
para configurar los ajustes como http://[username]:[password]@[proxy]:[port]
.
Sin embargo, particularmente porque se trata de una máquina compartida, prefiero no almacenar mi contraseña en mi .gitconfig
. Además, cambiar mi .gitconfig
usando el comando git config
deja mi contraseña en mi historial de bash, así que incluso si recuerdo borrar mi .gitconfig
al final de la sesión, casi seguro que también me olvidaré de borrar mi historial.
He intentado configurar http.proxy
sin una contraseña, con la vana esperanza de recibir un mensaje pidiéndome mi contraseña cuando intento presionar / tirar, pero solo obtengo una autenticación de proxy 407 requerida. Toda la información que he encontrado en línea parece ignorar los problemas con la contraseña guardada en texto sin formato en .gitconfig
, o se ocupa de los proxies NTLM.
Estoy encantado de escribir los detalles de mi proxy cada vez que necesito conectarme. La mejor solución que puedo ver en este momento es escribir un script de contenedor que solicite mi contraseña y la establezca como una variable de entorno al llamar a git
correctamente. ¿Es esta una solución decente? ¿Existen implicaciones de seguridad para establecer una variable de entorno para una sola llamada en un script? Preferiblemente, ¿hay alguna configuración integrada o herramientas existentes que pueda usar para esto?
En lugar de usar la configuración de git, también puede usar la variable de entorno (que puede establecer solo para su sesión), como se describe en esta respuesta :
set http_proxy=http://username:password@proxydomain:port
set https_proxy=http://username:password@proxydomain:port
set no_proxy=localhost,.my.company
Por lo tanto, su secuencia de comandos de contenedor podría, en lugar de modificar .gitconfig
(y dejar su contraseña en texto sin formato) establecer variables de entorno a pedido, solo para su sesión actual.
La respuesta de VonC no siempre resuelve el problema. No sé por qué, pero puede depender del servidor proxy, ¿o tal vez sea algún otro problema en conjunto?
Puede ser útil reemplazar el protocolo git://
del repositorio con http://
.
Nota: como en la respuesta de VonC, primero deberá configurar las variables de entorno http(s)_proxy
:
set http_proxy=http://username:password@proxydomain:port
set https_proxy=http://username:password@proxydomain:port
Por ejemplo, el git estable del clon de mármol generalmente se clonaría así (a partir de la documentación de mármol ):
git clone -b Aplicaciones / 15.12 git: //anongit.kde.org/marble ~ / marble / sources
En cmd
Windows (asumiendo que http_proxy
ha sido configurado), entonces puede que tenga que usar http[s]://
lugar:
git clone -b Applications/15.12 http://anongit.kde.org/marble ~/marble/sources
desde git 2.8.0
git config --global http.proxy http://[user]@proxyhost:port
git config --global credential.helper wincred
Si estás detrás de un servidor proxy, sigue esto.
Asegúrese de que el puerto 9418 esté excluido de sus reglas de firewall. Pregunte al administrador de la red
Desactivar Proxy si ya está configurado:
- git config --global --unset http.proxy
- git config --global --unset https.proxy
Establecer el Proxy adecuado:
- git config --global http.proxy http://username:password@proxydomain:port
- git config --global https.proxy http://username:password@proxydomain:port
Errores comunes:
- 502: la URL / IP no es accesible desde su red.
- 407: autenticación de proxy denegada.
- 80: El proxy no se ha configurado correctamente.