descargar un archivo de un servidor con autenticación kerberos

Estoy tratando de crear una secuencia de comandos desde un shell de Linux descargando un archivo de un servidor web a través de https que está protegido con autenticación Kerberos. Intenté usar wget y curl, pero ninguno de ellos parece admitir kerberos sobre https.

¿Existe una utilidad de línea de comandos de Linux que admita kerberos a través de https? Y si es así, ¿cómo lo usas?

preguntado el 01 de julio de 12 a las 18:07

Lo siento, no es una pregunta de programación, votando para pasar a superusuario.com O puede 'marcarlo' y pedirle a un moderador que lo mueva. (No voté negativamente tu pregunta). Buena suerte. -

¿Qué pasa con las secuencias de comandos que hacen que esto no sea una pregunta de programación? Si esto necesita moverse a un sitio diferente, creo que sería mejor en serverfault.com que en superusuario.com -

Tiene un problema de herramientas, no un problema de programación. -

3 Respuestas

Es completamente posible con curl si tiene GSS-Negotiate. Verifícalo con curl -V debería devolver un Caracteristicas linea con GSS-Negociar en él (Ubuntu 12.04 lo tiene en el paquete). También necesita herramientas de cliente de Kerberos (como krb5-user en Ubuntu) y configure su /etc/krb5.conf con REALM y kdc. Ver documentos del MIT

Para empezar, debe poder obtener un ticket del mismo KDC que utiliza el servidor web (ignorando posibilidades más complejas). Y también el dominio del que va a OBTENER debe tener un puntero inverso adecuado o estar configurado en su /etc/hosts así que revisa tu DNS.

Comience con kinit <some user principal>

Luego, puede abrirse camino hasta la URL que desea verificar. A falso Se requiere usuario para que curl acepte su negociación (pero en realidad no se usa, no importa el nombre de usuario o la contraseña). También uso un --trace-ascii- para obtener los errores de Kerberos.

Por ejemplo:

 curl  --negotiate -u foo --trace-ascii -  http://intranet/

Si tú ves:

== Info: gss_init_sec_context() failed: : Credentials cache file '/tmp/krb5cc_0' not found<= Recv header, 29 bytes (0x1d)

entonces te olvidaste kinit o no tuvo éxito.

Si ves algo así pero con krb5kdc_err_s_principal_unknown entonces el nombre que la biblioteca kerberos construyó con un puntero inverso o una entrada de host no tiene un principal correspondiente en el KDC contactado.

De lo contrario, si el servidor envía la adecuada HTTP/1.1 401: Authorization Required y WWW-Authenticate: Negotiate te autentificas.

Respondido el 27 de Septiembre de 13 a las 20:09

Gran respuesta. ¿Algún repositorio público de yum que tenga curl/libcurl con GSS-Negotiate precompilado? - Tagar

En Fedora 29, esto funciona para mí, pero solicita una contraseña (que luego puede ser cualquier cosa). En lugar de usar foo, usar -u: (Con la : ser un nombre de usuario falso en blanco y la contraseña). - mattdm

Interesante. ¿Podría ser que el servidor web también envió un encabezado WWW-Authenticate: Basic? - Gerrit

Consulte las páginas man de curl. Puede usar --negotiate para usar SPNego/GSSAPI/Kerberos. La mayoría de los servidores web admiten SPNego.

Respondido 26 Jul 12, 03:07

curl tiene soporte SPNEGO si lo compilas con fbopenssl, no hay soporte incorporado. He hecho eso y funciona.

Respondido el 28 de junio de 16 a las 16:06

Hay un comentario en RPM de curl .spec archivo que indica esto a partir de la versión 7.38.0: "- ya no use fbopenssl para nada". - slm

@slm Eso es correcto, yo y algunos otros han mejorado drásticamente el soporte SPNEGO de curl en ese entonces. - Michael-O

Gracias por hacer eso, no estaba del todo claro cuando comencé a intentar compilar 7.37 hasta que encontré el archivo .spec y luego me di cuenta de que en versiones posteriores, 7.38+, SPNEGO ahora es más fácil de compilar debido al requisito de tener que obtener FBOpenSSL. ha sido removido. Dado esto, ¿debería actualizarse esta respuesta para reflejar el estado actual o para aclarar que es diferente según la versión de curl que esté usando? - slm

@slm. Cierto. Continúa y edita mi respuesta. Voy a aprobar el cambio. - Michael-O

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.