2012-03-16 16 views
7

Estoy usando git para uno de mis proyectos. Cada vez que trato de presionar para repositorio remoto, git me pide una contraseña usando una ventana X, así que si intento enviarlo a la computadora y presionarlo, también tengo que avanzar X para que la ventana aparezca en mi pantalla.haciendo que git solicite una contraseña en la terminal

¿Es posible hacer que git solicite una contraseña en el terminal mismo?

+0

Estoy usando git versión git versión 1.7.1 –

+0

Creo que es ssh quien está pidiendo contraseña no git – Shahbaz

+0

ya es probable, es un repositorio privado, está pidiendo la contraseña de mi clave pública, para verificar si tengo derechos empujar a ese repositorio. El reenvío de X está impedido en ese servidor ahora, por lo que no podría presionar. –

Respuesta

2

Esto no es un comportamiento de git; está presionando a un repositorio a través de SSH, y SSH le está pidiendo su contraseña. La página de manual ssh dice:

Si ssh no tiene un terminal asociado a él, pero DISPLAY y SSH_ASKPASS se establecen, se ejecutará el programa especificado por SSH_ASKPASS y abrir una ventana X11 para leer la frase de contraseña.

Normalmente, cuando se ssh a un host remoto, ssh borra la variable DISPLAY para evitar precisamente este tipo de problemas, pero es posible que pueda haber configurado SSH para propagar más variables de entorno que permite la configuración por defecto. En ese caso, asegúrese de que ssh haga no copie la variable DISPLAY al host remoto (si necesita el reenvío X11, ssh creará su propia y nueva variable DISPLAY, no necesita la original). Eso debería evitar que se inicie ssh-askpass en el servidor donde está ejecutando git.

5

@Screwtape es (al menos parcialmente) correcto, en his answer. Si mira this page, muestra el mismo problema (en medio de un problema mayor), pero también indica cómo evitar este error.

Mientras que usted está SSH'ing en el equipo en el que desea ejecutar el comando git, intente:

$ unset SSH_ASKPASS 

Esto desarma la variable de entorno $ SSH_ASKPASS. Si luego ejecuta el comando git que desea ejecutar, debería funcionar. Funciona en mi terminal de masilla de Windows en la que estoy SSH a un servidor de CentOS. Tenga en cuenta que este cambio no establecido es NO permanente (tal vez algo bueno) y que necesita volver a desactivar este parámetro la próxima vez que inicie sesión, pero hace el trabajo si desea ejecutar scripts GIT.

¿Por qué esta falla todavía existe, a pesar de que se informó hace más de dos años? From this source, parece que Windows nunca establece la variable de entorno DISPLAY y, por lo tanto, GIT no funcionaría correctamente si realiza esta comprobación. Por lo tanto, la funcionalidad queda fuera (aparentemente) y la cita que deja @Screwtape se copia correctamente, pero no se aplica en realidad.

Cuestiones relacionadas