194 votos

SSH Permisos de clave privada usando Git GUI o ssh-keygen son demasiado abierta

Recientemente, he sido incapaz de clonar o empujar a github, y estoy tratando de encontrar la causa raíz.

Esto es en windows

He cygwin + git así como msysgit.

Msysgit fue instalada con las siguientes opciones:

  • OpenSSH
  • El uso de Git desde el Símbolo del sistema de Windows

Que me da 4 ambientes a tratar de usar git en:

  • Símbolo de cmd de Windows
  • Powershell
  • Git Bash
  • Cygwin

De alguna manera me las arreglé para ponerme en una posición en la que al intentar clonar un repositorio usando msysgit, cmd.exe o Powershell, me sale el siguiente error:

> Initialized empty Git repository in
> C:/sandbox/SomeProject/.git/
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @    WARNING: UNPROTECTED PRIVATE KEY FILE!          @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> Permissions 0644 for
> '/c/Users/Ben/.ssh/id_rsa' are too
> open. It is recommended that your
> private key files are NOT accessible
> by others. This private key will be
> ignored. bad permissions: ignore key:
> /c/Users/Ben/.ssh/id_rsa Permission
> denied (publickey). fatal: The remote
> end hung up unexpectedly

Este es el uso de la carpeta .ssh en mi c:\users\ben\ carpeta, el cual es utilizado por msysgit. Sospecho que cygwin funciona porque la carpeta .ssh se encuentra en otra parte, pero no estoy seguro de por qué

En Git Bash, puedo comprobar los permisos:

$ ls -l -a ~/.ssh

Lo que me da:

drwxr-xr-x    2 Ben      Administ        0 Oct 12 13:09 .    
drwxr-xr-x   34 Ben      Administ     8192 Oct 12 13:15 ..    
-rw-r--r--    1 Ben      Administ     1743 Oct 12 12:36 id_rsa
-rw-r--r--    1 Ben      Administ      399 Oct 12 12:36 id_rsa.pub    
-rw-r--r--    1 Ben      Administ      407 Oct 12 13:09 known_hosts

Estos permisos son, aparentemente, muy relajada. Cómo consiguió de esta manera, no tengo idea.

Puedo tratar de cambiarlas...

$ chmod -v -R 600 ~/.ssh

el que me dice:

mode of `.ssh' changed to 0600 (rw-------)
mode of `.ssh/id_rsa' changed to 0600 (rw-------)
mode of `.ssh/id_rsa.pub' changed to 0600 (rw-------)
mode of `.ssh/known_hosts' changed to 0600 (rw-------)

Pero parece no tener ningún efecto. Me sigue apareciendo el mismo error, y haciendo

$ ls -l -a ~/.ssh

los rendimientos de los mismos permisos que antes.

ACTUALIZACIÓN:

He intentado solucionar los permisos a los archivos en cygwin, y cygwin informes de sus permisos correctamente, gitbash no: alt text

Cualquier ideas sobre cómo puedo solucionar estos permisos?

294voto

Koby Puntos 3376

Has cambiado los permisos en el directorio entero, que estoy de acuerdo con Splash es una mala idea. Si usted puede recordar lo que el original de los permisos para el directorio, me gustaría tratar de establecer de nuevo y, a continuación, haga lo siguiente

cd ~/.ssh
chmod 700 id_rsa

dentro de la carpeta .ssh. En la que se establece el id_rsa archivo rwx (lectura, escritura, ejecución) para el titular (usted), y cero de acceso para todos los demás.

Si usted no puede recordar lo que la configuración original, agregar un nuevo usuario y crear un conjunto de claves SSH para el usuario, creando así una nueva carpeta .ssh que tendrá permisos predeterminados. Usted puede utilizar esa nueva carpeta .ssh como referencia para los permisos para restablecer tu .ssh carpeta y los archivos.

Si eso no funciona, me gustaría tratar de hacer una desinstalación de msysgit, borrando TODOS los .ssh carpetas en el ordenador (sólo para la seguridad de la medida), a continuación, reinstalar msysgit con la configuración deseada y tratar de empezar de nuevo completamente (aunque creo que me dijo que esta probado ya).

Editado: También acabo de encontrar este enlace a través de Google, la Fijación de "ADVERTENCIA: sin protección ARCHIVO de CLAVE PRIVADA!" en Linux , Mientras que está dirigido a linux, podría ayudar, ya que estamos hablando de liunx permisos y tal.

64voto

kittikun Puntos 462

Hay un error con chmod de cygwin, por favor, consulte:

-chmod-como se esperaba-http://superuser.com/questions/397288/using cygwin-en-windows-8-600-hace-no-trabajo-

 chgrp -Rv Users ~/.ssh/* 
chmod -vR 600 ~/.ssh/id_rsa
 

13voto

Steve Clay Puntos 3697

Estoy en XP y esto permitió Git Bash para comunicarse w/ Github (después de mucha frustración):

  1. copia c:\cygwin\bin\cyg* (~50 archivos) c:\Program Files\Git\bin\
  2. copia c:\cygwin\bin\ssh.exe a c:\Program Files\Git\bin\ (sobrescribir)
  3. Crea el archivo c:\Documents and Settings\<username>\.ssh\config contiene:

    Host github.com
        User git
        Hostname github.com
        PreferredAuthentications publickey
        IdentityFile "/cygdrive/c/Documents and Settings/<username>/.ssh/id_rsa"
    
  4. (opcional) Use ssh -v git@github para ver la conexión de depurar.

  5. Pruebe con un empujón!

Antecedentes: El problema general es una combinación de estos dos:

  • ERROR: mingw32 ve todos los archivos como 644 (otros/grupo legible), y nada he intentado en mingw32, cygwin, o Windows podría solucionarlo.
  • mingw32 SSH versión no permitir que para claves privadas (generalmente una buena política en un servidor).

13voto

Para sistemas *nix, es obvio que arreglar es chmod 600 id_rsa ofc, pero en windows 7 tuve que golpear mi cabeza contra la pared por un tiempo, pero luego me encontré con la solución mágica:

ir a Mi pc / Clic Derecho / Propiedades / Configuración Avanzada del Sistema / Variables de Entorno y ELIMINAR la variable (posiblemente a partir del sistema y el entorno del usuario):

CYGWIN

Básicamente, se trata de un error en mingw32 utilizado por git binarios de windows, ver todos los archivos 644 y todas las carpetas 755 siempre. La eliminación de la variable de entorno no cambiar ese comportamiento, pero appearantly dice ssh.exe ignorar el problema. Si usted no establece los permisos adecuados para su id_rsa a través de los exploradores de la configuración de seguridad (realmente no hay necesidad de tener cualquier otro usuario en el que tú, no "todos", no "los administradores", no de "sistema". ninguno. sólo usted), usted todavía será seguro.

Ahora, ¿por qué mingw32, un sistema diferente de cygwin, haría cualquier uso de la variable de entorno CYGWIN, es más allá de mí. Parece un error para mí.

9voto

Brett Pennings Puntos 206

Para Windows 7 usando el Git encontrado aquí (utiliza MinGW, no Cygwin):

  1. En el Explorador de Windows, haga clic en el archivo y seleccione Propiedades id_rsa
  2. Seleccione la ficha Seguridad y haga clic en Editar ...
  3. Marque la casilla Denegar junto a Control total para todos los grupos excepto los administradores
  4. Vuelve a probar el comando Git

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X