Le autorizzazioni della chiave privata SSH che utilizzano Git GUI o ssh-keygen sono troppo aperte


244

Recentemente non sono stato in grado di clonare o spingere su Github e sto cercando di trovare la causa principale.

Questo è su windows

Ho cygwin + git e msysgit.

Msysgit è stato installato con le seguenti opzioni:

  • OpenSSH
  • Usa Git dal prompt dei comandi di Windows

Questo mi dà 4 ambienti per provare a usare git in:

  • Prompt cmd di Windows
  • PowerShell
  • Git Bash
  • Cygwin

In qualche modo sono riuscito a mettermi in una posizione in cui quando provo a clonare un repository utilizzando msysgit, cmd.exe o Powershell, ottengo il seguente errore:

> 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

Questo sta usando la cartella .ssh nella mia cartella c: \ users \ ben \, che è ciò che viene utilizzato da msysgit. Sospetto che Cygwin funzioni perché la cartella .ssh si trova altrove, ma non sono sicuro del perché

In Git Bash, controllo le autorizzazioni:

$ ls -l -a ~/.ssh

Il che mi dà:

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

Queste autorizzazioni sono apparentemente troppo rilassate. Come sono arrivati ​​in questo modo, non ne ho idea.

Posso provare a cambiarli ...

$ chmod -v -R 600 ~/.ssh

che mi 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-------)

Ma sembra non avere alcun effetto. Ottengo ancora lo stesso errore e lo faccio

$ ls -l -a ~/.ssh

restituisce le stesse autorizzazioni di prima.

AGGIORNARE:

Ho provato a correggere i permessi per quei file in cygwin e cygwin riporta correttamente i loro permessi, gitbash no: alt text http://cdn.cloudfiles.mosso.com/c54102/app7962031255448924.jpg

Qualche idea su come posso davvero correggere queste autorizzazioni?


1
Potresti dirci qual è il filesystem nativo che sta utilizzando C: \ Users \ Ben \. Sembra che quel filesystem non supporti permessi reali, o i mapping tra la shell e il filesystem non funzionino correttamente. È possibile modificare le autorizzazioni tramite ACL di Windows?
Chen Levy,

Sto usando Windows 7. Posso cambiare le autorizzazioni in questo, ma cosa dovrebbero essere? Tutti i documenti github / ssh dicono che hai bisogno di 0600, ma non ho idea di cosa significhi negli ACL di Windows.
Ben Scheirman,

2
Uh ... un po 'di sidenote qui, ma modificare una directory in 600 è una cattiva idea. Le directory (e i file eseguibili) sono sempre più alte di una cifra (700 non 600, 755 non 644). Farlo su una directory lo renderà non elencabile. Vedi dartmouth.edu/~rc/help/faq/permissions.html per spiegazioni più dettagliate.
Mark Embling,

Sei contrario all'utilizzo di PuTTY?
Greg Bacon,

se risolve il mio problema, allora no, ma sono curioso di sapere perché questa configurazione non funziona per me.
Ben Scheirman,

Risposte:


361

Hai modificato le autorizzazioni per l'intera directory, che concordo con Splash è una cattiva idea. Se riesci a ricordare quali sono le autorizzazioni originali per la directory, proverei a ripristinarle e quindi fare quanto segue

cd ~/.ssh
chmod 700 id_rsa

all'interno della cartella .ssh. Ciò imposterà il file id_rsa su rwx (lettura, scrittura, esecuzione) solo per il proprietario (tu) e zero accesso per tutti gli altri.

Se non ricordi quali sono le impostazioni originali, aggiungi un nuovo utente e crea un set di chiavi SSH per quell'utente, creando così una nuova cartella .ssh con autorizzazioni predefinite. È possibile utilizzare quella nuova cartella .ssh come riferimento per le autorizzazioni per ripristinare la cartella e i file .ssh.

Se il problema persiste, proverei a fare una disinstallazione di msysgit, eliminando TUTTE le cartelle .ssh sul computer (solo per sicurezza), quindi reinstallando msysgit con le impostazioni desiderate e provando a ricominciare da capo (anche se penso che tu mi abbia detto hai già provato questo).

Modificato: ho anche trovato questo link tramite Google - Correzione "ATTENZIONE: FILE CHIAVE PRIVATO NON PROTETTO!" su Linux Sebbene sia indirizzato a Linux, potrebbe essere utile dal momento che stiamo parlando di permessi di liunx e simili.


2
Questa risposta si applica specificamente all'utilizzo di cygwin o msysgit (poiché msysgit utilizza un sottoinsieme di cygwin o eventualmente mingw32). Il problema è l'autorizzazione sul file. A Git piace lavorare con (principalmente) permessi linux (probabilmente un prodotto secondario del suo pubblico target). L'uso di git.exe nella shell di Winodws è noto per avere problemi, consiglierei di utilizzare msysgit. Almeno fino a quando GitSharp non funziona completamente.
Koby,

2
Questo non funziona su Windows 8 e sulla mia installazione di Cygwin del gennaio '14 come dopo chmod 700, mostra il file come rwxrwx ---. Le autorizzazioni di gruppo devono essere impostate su qualunque cosa io abbia impostato le autorizzazioni utente e non posso usare le mie chiavi.
Dean Hiller,

1
@DeanHiller, dovrebbe apparire un'autorizzazione di 700 -rwx------. Quindi ciò che stai mostrando non è corretto se hai eseguito correttamente il comando chmod.
Koby,

5
@Koby no, era un bug con un lavoro aroudn ... bisogno di usare chgrp -R Users ~ / .ssh e poi chmod ora funziona e cambia le autorizzazioni correttamente ..... un bug noto che ho finalmente trovato su un altro post.
Dean Hiller,

2
Posso verificare che ci sia un qualche tipo di bug in GitBash per Windows in cui NON è possibile impostare le autorizzazioni corrette con chmod o che le autorizzazioni non vengano lette correttamente. chmod 600 id_rsd; ls -l id_rs -> -rwx-r - r--
Charlweed

74

C'è un bug con chmod di cygwin, fare riferimento a:

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

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

Per qualsiasi motivo, il mapping dalle autorizzazioni di Windows alle autorizzazioni di tipo cygwin / * nix è un po 'confuso. Anche se ho rimosso tutte le autorizzazioni degli altri utenti sul lato Windows, Cygwin ha comunque applicato le autorizzazioni per me, l' utente , a un altro gruppo chiamato None. (Suppongo che questa sia una procedura standard quando un gruppo non è stato definito in modo esplicito). Questa modifica in un gruppo esplicito ha Userspresumibilmente permesso a Cygwin di separare i permessi, e potrei finalmente impostare 600 invece di un 660 automatico.
t-mart

3
Questa è la vera risposta corretta. Quella che è stata votata come la risposta corretta - Penso che le persone che lo hanno votato erano utenti Linux e non si sono resi conto che stava eseguendo il comando correttamente. Oggi ho avuto lo stesso problema con Cygwin. Grazie!
Michaelday,

Prima di applicare questa soluzione, quando utilizzavo chmod 600git mi sarei lamentato che le mie autorizzazioni erano ancora 0660. Riparando la proprietà del gruppo, chown si applica correttamente.
Guilherme Rodrigues,

1
Ho aggiornato Cygwin e ha funzionato. Devono aver corretto il bug.
Duncan Calvert,

17

Per i sistemi * nix, la soluzione ovvia è chmod 600 id_rsaspesso, ma su Windows 7 ho dovuto sbattere la testa contro il muro per un po ', ma poi ho trovato la soluzione magica:

vai su Risorse del computer / Clic destro / Proprietà / Impostazioni di sistema avanzate / Variabili d'ambiente e ELIMINA la variabile (possibilmente sia dall'ambiente di sistema che dell'utente):

CYGWIN

Fondamentalmente, è un difetto in mingw32 usato da git windows binary, vedendo sempre tutti i file 644 e tutte le cartelle 755. La rimozione della variabile di ambiente non modifica questo comportamento, ma apparentemente dice a ssh.exe di ignorare il problema. Se imposti le autorizzazioni appropriate per il tuo id_rsa attraverso le impostazioni di sicurezza degli esploratori (non c'è davvero bisogno di avere nessun altro utente al di fuori del tuo, non "tutti", non "amministratori", non "sistema". Nessuno. Solo tu) , sarai ancora sicuro.

Ora, perché mingw32, un sistema diverso da quello Cygwin, farebbe qualsiasi uso della variabile d'ambiente Cygwin, è oltre me. A me sembra un bug.


3
Questo non ha funzionato per me. Ricevo ancora il messaggio "FILE CHIAVE PRIVATO NON PROTETTO". Volevo solo farti sapere se qualcun altro si imbatte in questa discussione con risultati simili.
Luc,

Ha funzionato per me. Questo è stupido però. Non sto nemmeno più usando Cygwin. Inoltre, come mai l'hai capito?
gamma

13

Sono su XP e questo ha permesso a Git Bash di comunicare con Github (dopo molte frustrazioni):

  1. copia c:\cygwin\bin\cyg*(~ 50 file) inc:\Program Files\Git\bin\
  2. copia c:\cygwin\bin\ssh.exein c:\Program Files\Git\bin\(sovrascrittura)
  3. Crea il file c:\Documents and Settings\<username>\.ssh\configcontenente:

    Host github.com
        User git
        Hostname github.com
        PreferredAuthentications publickey
        IdentityFile "/cygdrive/c/Documents and Settings/<username>/.ssh/id_rsa"
    
  4. (facoltativo) Utilizzare ssh -v git@githubper visualizzare il debug della connessione.

  5. Prova una spinta!

Contesto: il problema generale è una combinazione di questi due:

  • ERRORE: mingw32 vede tutti i file come 644 (altri / leggibili in gruppo), e nulla di ciò che ho provato in mingw32, cygwin o Windows è riuscito a risolverlo.
  • La versione SSH di mingw32 non lo consentirà per le chiavi private (generalmente una buona politica in un server).

Non è necessario creare un file c:\Documents and Settings\<username>\.ssh\configpoiché è stato sostituito c:\Program Files\Git\bin\ssh.exe con c:\cygwin\bin\ssh.exe. Giusto ?
爱国者

Concordo con il commento "molta frustrazione". Per gitolite, ho seguito questi passaggi, copiando cygwin / bin / cyg * nella mia directory Git (PortableGit - o - Program Files / Git), e ho scoperto che avrei potuto usare git da Git-Bash, ma non da cygwin bash. L'aggiunta di entrambe le directory bin di PortableGit e Cygwin al mio PATH ha funzionato con un successo limitato ... ma ho comunque dovuto spostare PortableGit / bin / ssh.exe {,. Bak} in modo che non venisse utilizzato accidentalmente (anche se è il lo stesso di c: /cygwin/bin/ssh.exe). Fondamentalmente ssh.exe deve essere eseguito dalla directory cygwin a causa di altre dipendenze che non sono state copiate.
michael

Anche se ora funziona per me, il prossimo tentativo sarebbe solo quello di aggiungere Git e Cygwin al PERCORSO, e spostare ssh.exe di Git in modo che venga utilizzato ssh.exe di cygwin (dalla directory bin di cygwin).
michael

Aggiungi LogLevel DEBUGal file .ssh \ config per ottenere l'output di debug dal processo ssh.exe avviato da git.exe.
prendi il

Grazie - questa soluzione ha funzionato per me! In particolare, da c: \ cygwin \ bin \ ho copiato ssh.exe, cygcrypto-0.9.8.dll, cygwin1.dll, cygminires.dll e cygz.dll in C: \ Programmi \ Git \ bin \.
Nexus-byte,

10

Per Windows 7 usando Git trovato qui (usa MinGW, non Cygwin):

  1. In Windows Explorer, fai clic con il pulsante destro del mouse sul file id_rsa e seleziona Proprietà
  2. Seleziona la scheda Sicurezza e fai clic su Modifica ...
  3. Seleziona la casella Nega accanto a Controllo completo per tutti i gruppi EXCEPT Administrators
  4. Riprova il tuo comando Git

1
Questo è stato per me, ma ora ho un nuovo problema che ssh non mi piace la mia password, qualsiasi password che do il mio file chiave.
Jason Southwell,

7

OK, ecco come ho effettivamente forzato la modifica dei miei file di Windows per quanto riguarda le autorizzazioni stesse su Win7: Trova la tua chiave ssh in Windows Explorer: C: \ Users [nome_utente_qui] .ssh \ id_rsa

Fare clic con il tasto destro del mouse su file> Proprietà> scheda Sicurezza> pulsante Avanzate> Cambia autorizzazioni

Ora rimuovi chiunque non sia effettivamente il tuo nome utente. Ciò include gli amministratori e gli utenti del sistema. A questo punto potresti avere un dialogo sull'ereditarietà delle autorizzazioni - scegli l'opzione che NON eredita - poiché vogliamo solo cambiare questo file.

Fai clic su OK e salva fino al termine.

Ho combattuto con questo per giorni perché le mie finestre non avrebbero cambiato i permessi dei file dalla riga di comando. In questo modo è anche REALMENTE fatto, invece di usare eccitanti soluzioni che possono avere conseguenze strane.


6

Cambiare le autorizzazioni dei file da Proprietà, disabilitare l'ereditarietà ed eseguire chmod 400 non ha funzionato per me. Le autorizzazioni per il mio file di chiave privata erano:

-r - r ----- 1 alex Nessuno 1766 8 mar 13:04 /home/alex/.ssh/id_rsa

Poi ho notato che il gruppo era Nessuno, quindi ho appena corso

chown alex: amministratori ~ / .ssh / id_rsa

Quindi ho potuto modificare con successo i permessi con chmod 400 ed eseguire un git push.


4

PER UTENTI MAC:

Modificare le impostazioni del file della coppia di chiavi digitando questo nel terminale:

chmod og-r *filename.pem*

(assicurati di essere nella directory corretta, o percorso nomefile nel comando correttamente).




2

Ho avuto lo stesso problema su Windows XP solo di recente. Ho provato a chmod 700 sul mio file ~ / .ssh / id_rsa ma non sembra funzionare. Quando ho dato un'occhiata alle autorizzazioni usando ls -l su ~ / .ssh / id_rsa ho visto che le mie autorizzazioni effettive erano ancora 644.

Poi ho ricordato che le autorizzazioni di Windows ereditano anche le autorizzazioni dalle cartelle e la cartella era ancora aperta a tutti. Una soluzione potrebbe essere quella di impostare le autorizzazioni anche per la cartella, ma penso che un modo migliore sarebbe quello di dire al sistema di ignorare l'eredità per questo file. Questo può essere fatto utilizzando l'opzione avanzata nella scheda sicurezza nelle proprietà del file e deselezionando "eredita dalle autorizzazioni principali ..."

Questo potrebbe essere utile per gli altri con lo stesso problema.


1

Sto giocando proprio ora con Git 1.6.5 e non riesco a replicare il tuo setup:

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 git@github.com: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 git@github.com
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 non modifica neanche i permessi dei file per le mie chiavi.

Ambiente:

  • Windows Server 2008 SP2 su NTFS
  • utente: amministratore
  • ambiente variegato:
    • PLINK_PROTOCOL = ssh
    • HOME = / c / profili / home

Aggiornamento: funziona anche Git 1.6.5.1.


interessante. Sembra che tu stia usando l'opzione putty?
Ben Scheirman,

1

Questo è un problema particolarmente coinvolto su Windows, dove non è sufficiente modificare correttamente i file. Devi impostare il tuo ambiente.

Su Windows, questo ha funzionato per me:

  1. Installa cygwin.

  2. Sostituisci msysgit ssh.exe con ssh.exe di cygwin.

  3. Usando cygwin bash, chmod 600 il file della chiave privata, che era "id_rsa" per me.

  4. Se il problema persiste, vai su Pannello di controllo -> Proprietà del sistema -> Avanzate -> Variabili d'ambiente e aggiungi la seguente variabile d'ambiente. Quindi ripetere il passaggio 3.

    Valore variabile
    CYGWIN sbmntsec


1

Sono stato in grado di risolvere questo problema facendo due cose, anche se potrebbe non essere necessario eseguire il passaggio 1.

  1. copia da cygwin ssh.exe e tutto cyg * .dll nella directory bin di Git (questo potrebbe non essere necessario ma è un passo che ho fatto ma questo da solo non ha risolto le cose)

  2. seguire i passaggi da: http://zylstra.wordpress.com/2008/08/29/overcome-herokus-permission-denied-publickey-problem/

    Ho aggiunto alcuni dettagli al mio file ~ / .ssh / config:

Host heroku.com
Nome host heroku.com
Porta 22
IdentitàSolo sì
IdentityFile ~ / .ssh / id_heroku
TCPKeepAlive sì Brand
utente

Ho dovuto usare Utente come indirizzo e-mail per heroku.com Nota: questo significa che devi creare una chiave, l'ho seguito per creare la chiave e quando richiede il nome della chiave, assicurati di specificare id_heroku http: / /help.github.com/win-set-up-git/

  1. quindi aggiungi la chiave:
    heroku keys: aggiungi ~ / .ssh / id_heroku.pub

1

Quello che ha fatto il trucco per me era aggiornare la variabile d'ambiente CYGWIN con: " tty nodosfilewarning ". Non avevo nemmeno bisogno di cambiare la chiave.


0

Non una risposta diretta alla domanda principale, ma alla tua domanda su come funziona la cartella di cygwin ... Come regola generale, cygwin mette tutti i tuoi "tuoi" file sotto l'equivalente di c: \ cygwin \ home \ username. Tratta quella cartella per qualsiasi impostazione specifica dell'utente anziché per la directory dell'utente di Windows.


0

A meno che non ci sia una ragione per cui vuoi mantenere quella coppia di chiavi private / pubbliche (id_rsa / id_rsa.pub) o divertirti a sbattere la testa sul muro, ti consiglio di ricrearle e aggiornare la tua chiave pubblica su github.

Inizia facendo una copia di backup della tua directory ~ / .ssh.

Immettere quanto segue e rispondere "y" se si desidera sovrascrivere i file esistenti.

ssh-keygen -t rsa

Copia il contenuto della chiave pubblica negli appunti. (Di seguito è come dovresti farlo su un Mac).

cat ~/.ssh/id_rsa.pub | pbcopy

Vai al tuo account su github e aggiungi questa chiave.

Name: My new public key
Key: <PASTE>

Esci dal tuo terminale e riavviane uno nuovo.

Se ricevi messaggi di errore insensati come "Inserisci la tua password" per la tua chiave pubblica quando non ne hai mai inserito uno, considera questa tecnica di ricomincia. Come vedi sopra, non è complicato.


0

Non sono mai riuscito a far funzionare completamente git in Powershell. Ma nella shell git bash non avevo problemi di permessi, e non avevo bisogno di impostare chmod ecc ... Dopo aver aggiunto l'ssh a Github ero attivo e funzionante.



0

Hai copiato il file chiave da un'altra macchina?

Ho appena creato un id_rsafile sul computer client, quindi ho incollato la chiave desiderata. Nessun problema di autorizzazioni. Niente da impostare. Ha appena funzionato. Funziona anche se usi PuTTYgen per creare la chiave privata.

Forse qualche problema di gruppo nascosto se lo stai copiando da un altro computer.

Testato su due macchine Windows 8.1. Utilizzo di Sublime Text 3 per copiare e incollare la chiave privata. Utilizzo di Git Bash (Git-1.9.4-preview20140611).


0

Dopo aver aggiornato la mia installazione di Cygwin a una versione intorno a febbraio 2015 ( 1.7.34(0.285/5/3) 2015-02-04 12:14 x86_64 Cygwin), mi sono imbattuto improvvisamente UNPROTECTED PRIVATE KEY FILEnell'avvertimento.

Ho risolto questo problema dopo aver eseguito il comando seguente:

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

( un'altra risposta a un'altra domanda offre più contesto)


0

La risposta di @ koby non funziona per me, quindi faccio un piccolo cambiamento.

cd ~/.ssh
chmod 700 id_rsa.pub

Questo funziona bene per me su Mac.


0

Ho avuto lo stesso problema su Windows 10 in cui ho provato a SSH in una scatola di Vagrant. Sembra un bug nella vecchia versione di OpenSSH. Cosa ha funzionato per me:

  1. Installa l'ultimo OpenSSH da http://www.mls-software.com/opensshd.html
  2. where.exe ssh

(Nota ".exe" se stai usando Powershell)

Potresti vedere qualcosa del tipo:

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

Si noti che nell'esempio sopra l'ultimo OpenSSH è il secondo nel percorso, quindi non verrà eseguito.

Per modificare l'ordine:

  1. Pulsante destro del mouse su Windows -> Impostazioni -> "Modifica le variabili di ambiente di sistema"
  2. Nella scheda "Avanzate" fai clic su "Variabili d'ambiente ..."
  3. In Variabili di sistema, modifica "Percorso".
  4. Seleziona "C: \ Programmi \ OpenSSH \ bin" e "Sposta su" in modo che appaia in alto.
  5. Clicca OK
  6. Riavvia la console in modo che possano essere applicate le nuove variabili di ambiente.

0

Il mio sistema è un po 'un casino con bash / cygwin / git / msysgit / forse-altro ...

chmodnon ha avuto alcun effetto sulla chiave o sul configfile.

Quindi ho deciso di accedervi da Windows, che ha funzionato.

  1. Fare clic con il tasto destro del mouse sul file per il quale è necessario correggere l'autorizzazione.
  2. Selezionare Properties.
  3. Seleziona la Securityscheda
  4. Clicca Advancedvicino in fondo.
  5. Fai clic su Changeaccanto alla Ownerparte superiore.
  6. Digita "My-Awesome-Username" (ovviamente cambialo con il tuo attuale nome utente di Windows) e fai clic Check Names, quindi OK.
  7. Sotto Permission entries:, evidenzia ogni utente che non è "My-Awesome-Username" e seleziona Remove. Ripeti fino a quando "My-Awesome-Username" è l'unico rimasto.
  8. Seleziona "My-Awesome-Username" e fai clic Editsotto.
  9. Assicurati che Type:nella parte superiore sia impostato su Allow, quindi seleziona la casella di controllo accanto a Full control.
  10. Hit OK, Apply, OK, OK.

  11. Fai un altro tentativo ora ...

Sembra che a volte il mock-bash non possa controllare la proprietà del file. È particolarmente strano, in quanto generato da uno script finto-bash. Vai a capire.


0

Nessuno dei rimedi suggeriti qui (chmod / chgrp / setfacl / windows perms) ha funzionato per me con msys64 su una VM aziendale di Windows 7. Alla fine ho risolto il problema usando un agente ssh con la chiave fornita su stdin. Aggiungendo questo al mio lo .bash_profilerende predefinito per il mio login:

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

Ora posso fare git push e pull con i telecomandi ssh.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.