Supongamos, por el bien del argumento, que mi contraseña a continuación esabc123@
Necesito autenticar mi máquina Linux a través de un proxy corporativo para obtener parches y actualizaciones... normalmente usaría esto:
export HTTP_PROXY='http://<Americas\Username>:<Password>@proxy.foo.com'
export http_proxy='http://<Americas\Username>:<Password>@proxy.foo.com'
Sin embargo, cuando sustituyo una contraseña real que termina en @
y luego ejecuto aptitude update
, obtengo...
[mpenning@netwiki ~]$ sudo -E aptitude update
Err http://mirror.anl.gov squeeze Release.gpg
Could not resolve '@proxy.foo.com'
Err http://mirror.anl.gov/debian/ squeeze/main Translation-en
Could not resolve '@proxy.foo.com'
Intenté escapar de la contraseña con \@
, escapar de ambos con \@\@
caracteres dobles ( @@
), y nada parece hacer que esto funcione correctamente; Nunca tuve ningún problema hasta que cambié mi contraseña recientemente.
¿Cuál es la forma correcta de escapar de mi contraseña bash
?
Respuesta1
Tu podrías intentarcodificación de URLtu contraseña. @
debe ser reemplazado por %40
.
Abordar caracteres especiales en contraseñas de proxy en Linuxindica que esto debería funcionar, pero mirar a otras personas parece no funcionar (y no tengo forma de probarlo).
Respuesta2
¡Aún más simple y confiable!
Sintaxis general:
sudo {http,https,ftp}_proxy=http://<username>:<password>@<proxy_url/_proxyip>:<port>/ wget --timeout=5 --no-check-certificate http://<website_url>
Ejemplo:
[root@localhost ~]# sudo {http,https,ftp}_proxy=http://username:[email protected]:6050/ wget --timeout=5 --no-check-certificate http://google.com
{http,https,ftp}_proxy -> URL http, https, ftp. Separados por coma.
--tiempo de espera = 5 -> Conexión para mantenerse vivo en segundos.
-certificado-sin-verificación -> Ignorar SSL / Verificación de certificado.
--araña -> Si desea probar la conectividad sin descargar el archivo.
Notas:
Convertidor en línea:
Reemplace los caracteres especiales con su Unicode hexadecimal equivalente. Para obtener una lista de Unicodes, consulte el sitio web.https://unicode-table.com(o)http://unicodelookup.com
Convertidor local usando Python:
Referencia:la conversión de la contraseña "p@s#w:E" a Unicode será la siguiente,
@ = %40
$ = %24
# = %23
: = %3A
p@s#w:E = p%40s%23w%3AE
Aporte:
[root@localhost ~]# python -c "import sys, urllib as enc; print enc.quote_plus(sys.argv[1])" "p@s#w:E"
Producción:
p%40s%23w%3AE
Respuesta3
utilice %40 en lugar de @ en su contraseña,
Por ejemplo:
su contraseña es "A@ple123" entonces use "A%40ple123"