Los permisos de clave privada SSH usando Git GUI o ssh-keygen están demasiado abiertos

244

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

Esto está en windows

Tengo cygwin + git y msysgit.

Msysgit se instaló con las siguientes opciones:

  • OpenSSH
  • Use Git desde el símbolo del sistema de Windows

Eso me da 4 entornos para tratar de usar git en:

  • Indicador de cmd de Windows
  • Potencia Shell
  • Git Bash
  • Cygwin

De alguna manera me las arreglé para colocarme en una posición en la que cuando trato de clonar un repositorio usando msysgit, cmd.exe o Powershell, aparece 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

Esto está usando la carpeta .ssh en mi carpeta c: \ users \ ben \, que es lo que usa msysgit. Sospecho que cygwin funciona porque la carpeta .ssh se encuentra en otro lugar, pero no estoy seguro de por qué

En Git Bash, verifico 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 demasiado relajados. Cómo llegaron de esta manera, no tengo idea.

Puedo intentar cambiarlos ...

$ chmod -v -R 600 ~/.ssh

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 efecto. Sigo teniendo el mismo error y haciendo

$ ls -l -a ~/.ssh

produce los mismos permisos que antes.

ACTUALIZAR:

Traté de arreglar los permisos de esos archivos en cygwin, y cygwin informa sus permisos correctamente, gitbash no: alt text http://cdn.cloudfiles.mosso.com/c54102/app7962031255448924.jpg

¿Alguna idea sobre cómo puedo realmente corregir estos permisos?

Ben Scheirman
fuente
1
Es posible que desee decirnos cuál es el sistema de archivos nativo que C: \ Users \ Ben \ está utilizando. Parece que ese sistema de archivos no admite permisos reales, o las asignaciones entre el shell y el sistema de archivos no funciona correctamente. ¿Se pueden cambiar los permisos a través de ACL de Windows?
Chen Levy el
Estoy usando Windows 7. Puedo cambiar los permisos a eso, pero ¿qué se supone que son? Todos los documentos de github / ssh dicen que necesita 0600, pero no tengo idea de lo que eso significa en las ACL de Windows.
Ben Scheirman
2
Uh ... un poco de nota al margen aquí, pero cambiar un directorio a 600 es una mala idea. Los directorios (y los archivos ejecutables) son siempre un dígito más alto (700 no 600, 755 no 644). Hacer eso en un directorio lo hará inconfundible. Consulte dartmouth.edu/~rc/help/faq/permissions.html para obtener explicaciones más detalladas.
Mark Embling
¿Te opones a usar PuTTY?
Greg Bacon el
si soluciona mi problema, entonces no, pero tengo curiosidad por saber por qué esta configuración no funciona para mí.
Ben Scheirman el

Respuestas:

361

Cambiaste los permisos en todo el directorio, lo que estoy de acuerdo con Splash es una mala idea. Si puede recordar cuáles son los permisos originales para el directorio, trataría de volver a configurarlos y luego hacer lo siguiente

cd ~/.ssh
chmod 700 id_rsa

dentro de la carpeta .ssh. Eso establecerá el archivo id_rsa en rwx (lectura, escritura, ejecución) solo para el propietario (usted) y cero acceso para todos los demás.

Si no puede recordar cuáles son las configuraciones originales, agregue un nuevo usuario y cree un conjunto de claves SSH para ese usuario, creando así una nueva carpeta .ssh que tendrá permisos predeterminados. Puede usar esa nueva carpeta .ssh como referencia de permisos para restablecer su carpeta y archivos .ssh.

Si eso no funciona, intentaría desinstalar msysgit, eliminar TODAS las carpetas .ssh de la computadora (solo por seguridad), luego reinstalar msysgit con la configuración deseada e intentar comenzar de nuevo por completo (aunque creo que me dijiste ya intentaste esto).

Editado: También acabo de encontrar este enlace a través de Google - Corrección "ADVERTENCIA: ¡ARCHIVO DE CLAVE PRIVADO NO PROTEGIDO!" en Linux Si bien está dirigido a Linux, podría ayudar, ya que estamos hablando de permisos liunx y demás.

Koby
fuente
2
Esta respuesta se aplica específicamente al uso de cygwin o msysgit (ya que msysgit usa un subconjunto de cygwin o posiblemente mingw32). El problema es el permiso en el archivo. A Git le gusta trabajar con (en su mayoría) permisos de Linux (probablemente un subproducto de su público objetivo). Se sabe que el uso de git.exe en Winodws Shell tiene problemas, recomendaría seguir con msysgit. Al menos hasta que GitSharp esté funcionando por completo.
Koby
2
Esto no funciona en Windows 8 y en mi instalación de cygwin del 14 de enero, ya que después de chmod 700, muestra el archivo como rwxrwx ---. Los permisos de grupo se establecerán en lo que establezca los permisos de usuario y no puedo usar mis claves.
Dean Hiller
1
@DeanHiller, debería tener un permiso de 700 -rwx------. Entonces, lo que está mostrando no es correcto si ha ejecutado el comando chmod correctamente.
Koby
55
@Koby no, fue un error con un trabajo aroudn ... necesito usar chgrp -R Users ~ / .ssh y luego chmod ahora está funcionando y en realidad cambia los permisos correctamente ..... un error conocido que finalmente encontré en Otra publicación.
Dean Hiller
2
Puedo verificar que hay algún tipo de error en GitBash para Windows en el que los permisos correctos NO PUEDEN establecerse con chmod o los permisos no se leen correctamente. chmod 600 id_rsd; ls -l id_rs -> -rwx-r - r--
Charlweed
74

Hay un error con chmod de cygwin, consulte:

/superuser/397288/using-cygwin-in-windows-8-chmod-600-does-not-work-as-expected

chgrp -Rv Users ~/.ssh/* 
chmod -vR 600 ~/.ssh/id_rsa
kittikun
fuente
Por alguna razón, la asignación de permisos de Windows a permisos tipo cygwin / * nix es un poco confusa. Aunque eliminé los permisos de todos los demás usuarios en el lado de Windows, cygwin todavía aplicó los permisos para mí, el usuario , a otro grupo llamado None. (Supongo que este es un procedimiento estándar cuando un grupo no se ha definido explícitamente). Este cambio a un grupo explícito Userssupuestamente permitió a cygwin separar los permisos, y finalmente pude establecer 600 en lugar de un 660 automático.
Martes
3
Esta es la respuesta correcta real. La que votó como la respuesta correcta: creo que las personas que votaron por eso eran usuarios de Linux y no se daban cuenta de que estaba ejecutando el comando correctamente. Tuve el mismo problema con Cygwin hoy. ¡Gracias!
michaelday
Antes de aplicar esta solución, cuando usaba chmod 600git se quejaba de que mis permisos todavía estaban 0660. La fijación de la propiedad del grupo hace que chown se aplique correctamente.
Guilherme Rodrigues
1
Actualicé Cygwin y funcionó. Deben haber arreglado el error.
Duncan Calvert
17

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

vaya a Mi PC / Clic derecho / Propiedades / Configuración avanzada del sistema / Variables de entorno y BORRE la variable (posiblemente del sistema y del entorno del usuario):

CYGWIN

Básicamente, es una falla en mingw32 utilizada por el binario de git windows, al ver todos los archivos 644 y todas las carpetas 755 siempre. Eliminar la variable de entorno no cambia ese comportamiento, pero aparentemente le dice a ssh.exe que ignore el problema. Si establece los permisos adecuados para su id_rsa a través de la configuración de seguridad de los exploradores (realmente no hay necesidad de tener ningún otro usuario que no sea el suyo, no "todos", ni "administradores", ni "sistema". Ninguno. Solo usted) , aún estarás seguro.

Ahora, por qué mingw32, un sistema diferente que cygwin, haría cualquier uso de la variable de entorno CYGWIN, está fuera de mi alcance . Me parece un error.

Tuncay Göncüoğlu
fuente
3
Esto no funcionó para mí. Todavía recibo el mensaje "ARCHIVO DE CLAVE PRIVADA NO PROTEGIDO". Solo quería hacerle saber en caso de que alguien más se encuentre con este hilo con resultados similares.
Luc
Trabajó para mi. Sin embargo, esto es estúpido. Ya ni siquiera estoy usando Cygwin. Además, ¿cómo diablos resolviste esto?
gama
13

Estoy en XP y esto permitió que Git Bash se comunicara con Github (después de mucha frustración):

  1. copiar c:\cygwin\bin\cyg*(~ 50 archivos) ac:\Program Files\Git\bin\
  2. copiar c:\cygwin\bin\ssh.exea c:\Program Files\Git\bin\(sobrescribir)
  3. Crea el archivo que c:\Documents and Settings\<username>\.ssh\configcontiene:

    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@githubpara ver la conexión depurada.

  5. Prueba un empujón!

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

  • ERROR: mingw32 ve todos los archivos como 644 (otros / legibles por grupos), y nada de lo que probé en mingw32, cygwin o Windows podría solucionarlo.
  • La versión SSH de mingw32 no permitirá eso para las claves privadas (generalmente una buena política en un servidor).
Steve Clay
fuente
Parece que no es necesario hacer un archivo c:\Documents and Settings\<username>\.ssh\configya que lo ha reemplazado c:\Program Files\Git\bin\ssh.exe con c:\cygwin\bin\ssh.exe. Derecho ?
爱国者
De acuerdo con el comentario de "mucha frustración". Para gitolite, seguí estos pasos, copiando cygwin / bin / cyg * a mi directorio Git (PortableGit - o - Program Files / Git), y descubrí que podía usar git desde Git-Bash, pero no cygwin bash. Agregar los directorios Bin PortableGit y Cygwin a mi PATH también funcionó con un éxito limitado ... pero aún así tuve que mover PortableGit / bin / ssh.exe {,. Bak} para que no se usara accidentalmente (incluso si es el mismo que c: /cygwin/bin/ssh.exe). Básicamente, ssh.exe debe ejecutarse desde el directorio cygwin debido a otras dependencias que no se copiaron.
michael
Aunque ahora funciona para mí, el siguiente intento sería agregar Git y Cygwin a la RUTA, y quitar el ssh.exe de Git para que se use el ssh.exe de cygwin (del directorio bin de cygwin).
michael
Agregue LogLevel DEBUGal archivo .ssh \ config para obtener resultados de depuración del proceso ssh.exe iniciado por git.exe.
knb
Gracias, ¡esta solución funcionó para mí! Específicamente, de c: \ cygwin \ bin \ Copié ssh.exe, cygcrypto-0.9.8.dll, cygwin1.dll, cygminires.dll y cygz.dll a C: \ Archivos de programa \ Git \ bin \.
nexus-bytes
10

Para Windows 7 usando el Git que se encuentra aquí (usa MinGW, no Cygwin):

  1. En el explorador de Windows, haga clic con el botón derecho en su archivo id_rsa y seleccione Propiedades
  2. Seleccione la pestaña Seguridad y haga clic en Editar ...
  3. Marque la casilla Denegar junto a Control total para todos los grupos, EXCEPTO los administradores
  4. Vuelva a intentar su comando Git
Brett Pennings
fuente
1
Esto fue para mí, pero ahora tengo un nuevo problema que a ssh no le gusta mi contraseña, cualquier contraseña que le doy a mi archivo de clave.
Jason Southwell
7

OK, así es como forcé el cambio en mis archivos de Windows con respecto a los permisos en Win7: encuentre su clave ssh en el explorador de Windows: C: \ Users [your_user_name_here] .ssh \ id_rsa

Haga clic derecho en el archivo> Propiedades> pestaña Seguridad> botón Avanzado> Cambiar permisos

Ahora elimine a todos los que no sean su nombre de usuario. Esto incluye a los usuarios del administrador y del sistema. En este punto, puede obtener un diálogo sobre heredar permisos, elija la opción que NO hereda, ya que solo queremos cambiar este archivo.

Haga clic en Aceptar y guarde hasta que termine.

Luché con esto durante días porque mi Windows no cambiaría los permisos de archivo desde la línea de comandos. De esta forma, también se REALIZA, en lugar de utilizar métodos de trabajo emocionantes que pueden tener consecuencias extrañas.

diannaL
fuente
6

Cambiar los permisos de archivo desde Propiedades, deshabilitar la herencia y ejecutar chmod 400 no funcionó para mí. Los permisos para mi archivo de clave privada fueron:

-r - r ----- 1 alex Ninguno 1766 8 de marzo 13:04 /home/alex/.ssh/id_rsa

Entonces noté que el grupo era Ninguno, así que simplemente corrí

chown alex: Administradores ~ / .ssh / id_rsa

Entonces podría cambiar con éxito los permisos con chmod 400, y ejecutar un git push.

alex.m
fuente
4

PARA USUARIOS DE MAC:

Cambie la configuración de su archivo de par de claves escribiendo esto en el terminal:

chmod og-r *filename.pem*

(asegúrese de estar en el directorio correcto o en la ruta del nombre de archivo en el comando correctamente).

Andrés
fuente
3

Lo resuelvo corriendo:

chmod 400 ~/.ssh/id_rsa

Espero ayudar Buena suerte.

CristianOrellanaBak
fuente
1
Cambiando los permisos a 400 como Cristian mencionó, sería más seguro.
SylvesterAbreuLoreto
2

Después de encontrarme con el problema recientemente y este es uno de los mejores resultados de Google, pensé que podría contribuir con una solución simple documentada en la discusión aquí: http://code.google.com/p/msysgit/issues/detail?id = 261 # c40

Simplemente implica sobrescribir mysys ssh.exe con su cygwin ssh.exe

chriskhan
fuente
2

Tuve el mismo problema en Windows XP recientemente. Traté de chmod 700 en mi archivo ~ / .ssh / id_rsa pero no pareció funcionar. Cuando eché un vistazo a los permisos usando ls -l en ~ / .ssh / id_rsa pude ver que mis permisos efectivos todavía eran 644.

Entonces recordé que los permisos de Windows también heredan los permisos de las carpetas, y la carpeta todavía estaba abierta para todos. Una solución podría ser establecer permisos para la carpeta también, pero creo que una mejor manera sería decirle al sistema que ignore la herencia de este archivo. Esto se puede hacer usando la opción avanzada en la pestaña de seguridad en las propiedades del archivo, y desmarcando "heredar de permisos primarios ..."

Esto podría ser útil para otras personas con el mismo problema.

daramarak
fuente
1

Estoy jugando ahora con Git 1.6.5, y no puedo replicar tu configuración:

Administrator@WS2008 /k/git
$ ll ~/.ssh
total 8
drwxr-xr-x    2 Administ Administ     4096 Oct 13 22:04 ./
drwxr-xr-x    6 Administ Administ     4096 Oct  6 21:36 ../
-rw-r--r--    1 Administ Administ        0 Oct 13 22:04 c.txt
-rw-r--r--    1 Administ Administ      403 Sep 30 22:36 config_disabled
-rw-r--r--    1 Administ Administ      887 Aug 30 16:33 id_rsa
-rw-r--r--    1 Administ Administ      226 Aug 30 16:34 id_rsa.pub
-rw-r--r--    1 Administ Administ      843 Aug 30 16:32 id_rsa_putty.ppk
-rw-r--r--    1 Administ Administ      294 Aug 30 16:33 id_rsa_putty.pub
-rw-r--r--    1 Administ Administ     1626 Sep 30 22:49 known_hosts

Administrator@WS2008 /k/git
$ git clone [email protected]:alexandrul/gitbook.git
Initialized empty Git repository in k:/git/gitbook/.git/
remote: Counting objects: 1152, done.
remote: Compressing objects: 100% (625/625), done.
remote: Total 1152 (delta 438), reused 1056 (delta 383)s
Receiving objects: 100% (1152/1152), 1.31 MiB | 78 KiB/s, done.
Resolving deltas: 100% (438/438), done.

Administrator@WS2008 /k/git
$ ssh [email protected]
ERROR: Hi alexandrul! You've successfully authenticated, but GitHub does not pro
vide shell access
Connection to github.com closed.

$ ssh -v
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007

chmod tampoco modifica los permisos de archivo para mis claves.

Ambiente:

  • Windows Server 2008 SP2 en NTFS
  • usuario: administrador
  • entorno vars:
    • PLINK_PROTOCOL = ssh
    • HOME = / c / profiles / home

Actualización: Git 1.6.5.1 también funciona.

alexandrul
fuente
interesante. Parece que estás usando la opción de masilla?
Ben Scheirman el
1

Este es un problema particularmente complicado en Windows, donde no es suficiente simplemente modificar los archivos correctamente. Tienes que configurar tu entorno.

En Windows, esto funcionó para mí:

  1. Instala cygwin.

  2. Reemplace msysgit ssh.exe con cygwin's ssh.exe.

  3. Usando cygwin bash, chmod 600 el archivo de clave privada, que fue "id_rsa" para mí.

  4. Si todavía no funciona, vaya al Panel de control -> Propiedades del sistema -> Avanzado -> Variables de entorno y agregue la siguiente variable de entorno. Luego repita el paso 3.

    Valor variable
    CYGWIN sbmntsec

Michael Bosworth
fuente
1

Pude solucionar esto haciendo dos cosas, aunque es posible que no tenga que hacer el paso 1.

  1. copia de cygwin ssh.exe y todos los cyg * .dll en el directorio bin de Git (esto puede no ser necesario pero es un paso que tomé pero esto solo no solucionó las cosas)

  2. siga los pasos de: http://zylstra.wordpress.com/2008/08/29/overcome-herokus-permission-denied-publickey-problem/

    Agregué algunos detalles a mi archivo ~ / .ssh / config:

Host heroku.com Nombre de
host heroku.com
Puerto 22
Identidades Solo sí
IdentityFile ~ / .ssh / id_heroku
TCPKeepAlive sí
Usuario brandon

Tuve que usar Usuario como mi dirección de correo electrónico para heroku.com Nota: esto significa que necesita crear una clave, seguí esto para crear la clave y cuando solicite el nombre de la clave, asegúrese de especificar id_heroku http: / /help.github.com/win-set-up-git/

  1. luego agregue la clave:
    claves heroku: agregue ~ / .ssh / id_heroku.pub
Christy Hotney
fuente
1

Lo que hizo el truco para mí fue actualizar CYGWIN variable de entorno con: " nodosfilewarning TTY ". Ni siquiera necesité cambiar la clave.

tohokami
fuente
0

No es una respuesta directa a la pregunta principal, pero en su pregunta de cómo funciona la carpeta de cygwin ... Como regla general, cygwin coloca todos sus "archivos" bajo el equivalente de c: \ cygwin \ home \ username. Trata esa carpeta para cualquier configuración específica del usuario en lugar del directorio de usuarios de Windows.

J Wynia
fuente
0

A menos que exista una razón por la que desee mantener ese par de claves privadas / públicas (id_rsa / id_rsa.pub), o disfrute golpeándose la cabeza en la pared, le recomiendo recrearlas y actualizar su clave pública en github.

Comience haciendo una copia de seguridad de su directorio ~ / .ssh.

Ingrese lo siguiente y responda "y" si desea sobrescribir los archivos existentes.

ssh-keygen -t rsa

Copie el contenido de la clave pública en su portapapeles. (A continuación se muestra cómo debe hacerlo en una Mac).

cat ~/.ssh/id_rsa.pub | pbcopy

Vaya a su cuenta en github y agregue esta clave.

Name: My new public key
Key: <PASTE>

Salga de su terminal y reinicie uno nuevo.

Si recibe mensajes de error sin sentido como "Ingrese su contraseña" para su clave pública cuando nunca ingresó una, considere esta técnica de inicio. Como puede ver arriba, no es complicado.

l3x
fuente
0

Nunca logré que git funcionara por completo en Powershell. Pero en el shell git bash no tenía ningún problema relacionado con los permisos, y no necesitaba configurar chmod, etc. Después de agregar el ssh a Github, estaba funcionando.

Sam Kenny
fuente
0

Escriba en la terminal:

chmod -Rf 700 ~/.ssh/

E intenta de nuevo.

João Paulo Cercal
fuente
0

¿Copió el archivo de clave de otra máquina?

Acabo de crear un id_rsaarchivo en la máquina del cliente y luego pegué la clave que quería. No hay problemas de permisos. Nada que poner. Simplemente funcionó. También funciona si usa PuTTYgen para crear la clave privada.

Posiblemente algún problema de grupo oculto si lo está copiando de otra máquina.

Probado en dos máquinas con Windows 8.1. Usando Sublime Text 3 para copiar y pegar la clave privada. Usando Git Bash (Git-1.9.4-preview20140611).

PhilT
fuente
0

Después de actualizar mi instalación de Cygwin a una versión alrededor de febrero de 2015 ( 1.7.34(0.285/5/3) 2015-02-04 12:14 x86_64 Cygwin), de repente me encontré con elUNPROTECTED PRIVATE KEY FILE advertencia.

Solucioné este problema después de ejecutar el siguiente comando:

setfacl -s u::rw-,g::---,o:--- ~/.ssh/id_rsa

( otra respuesta a otra pregunta da más contexto)

Abdull
fuente
0

La respuesta de @ koby no me funciona, así que hago un pequeño cambio.

cd ~/.ssh
chmod 700 id_rsa.pub

Esto funciona bien para mí en Mac.

Han Pengbo
fuente
0

Tuve el mismo problema en Windows 10 donde intenté SSH en una caja Vagrant. Esto parece un error en la versión anterior de OpenSSH. Lo que funcionó para mí:

  1. Instale el último OpenSSH de http://www.mls-software.com/opensshd.html
  2. where.exe ssh

(Tenga en cuenta el ".exe" si está utilizando Powershell)

Es posible que vea algo como:

C:\Windows\System32\OpenSSH\ssh.exe
C:\Program Files\OpenSSH\bin\ssh.exe
C:\opscode\chefdk\embedded\git\usr\bin\ssh.exe

Tenga en cuenta que en el ejemplo anterior, el último OpenSSH es el segundo en la ruta, por lo que no se ejecutará.

Para cambiar el orden:

  1. Haga clic con el botón derecho en el botón de Windows -> Configuración -> "Editar las variables de entorno del sistema"
  2. En la pestaña "Avanzado", haga clic en "Variables de entorno ..."
  3. En Variables del sistema, edite "Ruta".
  4. Seleccione "C: \ Archivos de programa \ OpenSSH \ bin" y "Subir" para que aparezca en la parte superior.
  5. Haga clic en Aceptar
  6. Reinicie su consola para que se apliquen las nuevas variables de entorno.
Jasper Citi
fuente
0

Mi sistema es un poco complicado con bash / cygwin / git / msysgit / maybe-more ...

chmodno tuvo ningún efecto en la clave o el configarchivo.

Entonces decidí abordarlo desde Windows, que funcionó.

  1. Haga clic derecho en el archivo cuyo permiso necesita reparación.
  2. Seleccionar Properties.
  3. Selecciona la Securitypestaña.
  4. Haga clic Advancedcerca de la parte inferior.
  5. Haga clic Change, al lado de Ownercerca de la parte superior.
  6. Escriba "My-Awesome-Username" (obviamente, cámbielo a su nombre de usuario actual de Windows) y haga clic Check Names, luegoOK .
  7. Debajo Permission entries:, resalte cada usuario que no sea "My-Awesome-Username" y seleccioneRemove . Repita esto hasta que "My-Awesome-Username" sea el único que quede.
  8. Seleccione "My-Awesome-Username" y haga clic en Edit continuación.
  9. Asegúrese de que Type:en la parte superior esté configurado en Allow, y luego marque la casilla de verificación junto a Full control.
  10. Hit OK, Apply, OK, OK.

  11. Pruébalo ahora ...

Parece que a veces el simulacro no puede controlar la propiedad del archivo. Es especialmente extraño, ya que se genera a partir de un script simulado. Imagínate.

Jack_Hu
fuente
0

Ninguna de las soluciones sugeridas aquí (chmod / chgrp / setfacl / windows perms) funcionó para mí con msys64 en una VM corporativa de Windows 7. Al final, solucioné el problema usando un agente ssh con la clave provista en stdin. Agregar esto a mi lo .bash_profileconvierte en el valor predeterminado para mi inicio de sesión:

eval $(ssh-agent -s)
cat ~/.ssh/id_rsa | ssh-add -k -

Ahora puedo hacer git push and pull con controles remotos ssh.

Andy Brown
fuente