2015-11-01 18 views
8

Sono il proprietario del repository "progetto", ma in qualche modo non riesco a inviarlo.Github autentica ma non consente il push del codice

[email protected] ~/rails_projects/project $ git remote -v 
origin [email protected]:user/project.git (fetch) 
origin [email protected]:user/project.git (push) 

Ecco controllo di autenticazione:

[email protected] ~/rails_projects/project $ ssh -T [email protected] 
Hi user/project! You've successfully authenticated, but GitHub does not provide shell access. 

spinta tentativo:

[email protected] ~/rails_projects/project $ git push origin qa 
ERROR: The key you are authenticating with has been marked as read only. 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

Qualsiasi idea di come risolvere questo errore?

+0

Sei parte di un'organizzazione su Github a cui appartiene il repository? È possibile impostare l'accesso in sola lettura ai repository per membri specifici. Forse è così. https://github.com/blog/674-introducing-organizations – toniedzwiedz

+0

No, sono il proprietario del repository – Abram

risposta

7

Sembra probabile che si disponga di più di una chiave SSH e la chiave che viene presentata è una chiave di distribuzione per il repository anziché una delle chiavi del proprio account con autorizzazioni di scrittura. Esistono due modi per gestire questo:

  1. Rimuovere tutte le chiavi dall'agente SSH e aggiungere nuovamente la chiave di account corretta.

    ssh-add -D 
    ssh-add /path/to/correct/key 
    
  2. Usa HTTPS instead of SSH. È possibile farlo facilmente da changing the remote URL per origine per utilizzare lo schema HTTPS anziché SSH.

Uno o l'altro di questi dovrebbe funzionare, a meno che non si stiano semplicemente presentando le credenziali sbagliate del tutto.

+0

L'esecuzione di 'ssh-add -l' ha rivelato che la chiave che pensavo di usare non era inclusa . Quindi l'ho aggiunto e ora tutto funziona. Grazie. – Abram

4

L'errore:

ERROR: The key you are authenticating with has been marked as read only.

potrebbe significare che o si:

  • si sta cercando di spingere per repo utilizzando il tasto che è stato associato con un altro repository (per esempio come chiave Deploy) , così check da:

    $ ssh -i ~/.ssh/id_rsa [email protected] 
    Hi user/project! You've successfully authenticated, but GitHub does not provide shell access. 
    

    e confrontarlo user/project se è lo stesso come repository dove vuoi spingere.

  • la chiave è stata bloccata (ad esempio non è stata utilizzata per un lungo periodo di tempo), quindi è necessario riconfermarlo completando l'audit delle chiavi ssh esistenti nel profilo utente GitHub (/settings/ssh),

  • si stanno utilizzando più chiavi allo stesso tempo, verificare con: ssh-add -l (in tal caso, rimuoverli e aggiungere nuovamente quello di destra).

Quindi:

Please make sure you have the correct access rights and the repository exists.

dai seguenti semplici passi:

  1. Nota la propria impronta digitale RSA da:

    $ ssh-add -l 
    2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx (stdin) (RSA) 
    
  2. Poi controllare a GitHub se è stato aggiunto nel tuo account o repository:

    • per conto, controllare in: /settings/ssh (chiavi SSH),

      • se mancante, si prega di aggiungere che,
      • se Key è già in uso, trovare quale altra repo usarlo (vedi sotto), quindi rimuovere e aggiungere nuovamente nel tuo account,
    • per repository specifico, controllare in: :name/:repo/settings/keys (Distribuire le chiavi),

    • se non si è proprietari del repository, verificare se si è nel gruppo corretto (con premere l'accesso).

alternativa utilizzare & Inserisci nuova chiave, troubleshoot common SSH Problems o contact GitHub support, come potrebbero revocato per qualche motivo (ad esempio per rivelare pubblicamente esso).

Problemi correlati