Tengo la configuración de proxy de git como 'http.proxy = http: // userId: pwd @ 123 @ipaddress: port' pero al clonar un proyecto remoto, obtengo un error como
Cloning into git...
error: Couldn't resolve proxy '123@ipaddress' while accessing http://git.kernel.org/pub/scm/git/git.git/info/refs
fatal: HTTP request failed
¿Cómo escapar del carácter '@' en la contraseña?
Nota: no puedo cambiar la contraseña.
Nota (noviembre de 2013)
Codificar la URL (especialmente cualquier carácter especial en una contraseña) es la solución correcta.
Lo
.netrc
mencionado a continuación es solo para la URL de repositorio remoto, no para el proxy utilizado para resolver dicha URL de repositorio remoto.Para dicha codificación, consulte " Codificación porcentual ":
Respuesta original (mayo de 2011)
Dos comentarios:
tener una contraseña para un servidor al que se accede con http (no https) es ... extraño. La contraseña no está encriptada durante las comunicaciones entre el cliente y el servidor;
puede configurar un
.netrc
(o_netrc
para Windows) en su$HOME
, con el siguiente contenidoEl rizo utilizado por Git bbehind the scene manejaría bien la codificación,
@
o no@
.fuente
http://123@ipaddress:port/...
como una dirección de clonación, sin tener que agregar información de usuario y contraseña.La URL codifica cualquier carácter inusual.
Lista de códigos de URL.
En mi archivo de configuración de git, he codificado 'solo' el nombre de usuario, por ejemplo:
fuente
Por ejemplo, su contraseña almacenada en la variable de entorno
GIT_PASSWORD
, nombre de usuario -GIT_USERNAME
, luego:Explicación de:
echo -n $GIT_PASSWORD | hexdump -v -e '"x" 1/1 "%02X"' | tr x %
$GIT_REPOSITORY
<-hello
hello
<-x68x65x6Cx6Cx6F
x68x65x6Cx6Cx6F
<-%68%65%6C%6C%6F
fuente
Tienes que codificar en porcentaje | codificar los caracteres especiales. Por ejemplo, en lugar de esto:
escribe esto:
Entonces
@
se reemplaza con%40
.fuente