Sto provando a configurare un repository git condiviso tramite ssh, copiando le chiavi pubbliche degli utenti su authorized_keys. Mi piacerebbe davvero che il "nome utente" della ssh-key fosse parte della cronologia dei commit nel repository (in modo che l'utente "joe" non potesse semplicemente impostare il suo nome come "kate" - abbiamo bisogno di un qualche tipo di responsabilità) . C'è un modo per fare questo ?Posso associare il nome utente ssh con commit con git su ssh?
risposta
Semplicemente no, non c'è modo. Il motivo è che i dettagli dell'autore e del committer sono impostati quando viene eseguito un commit e questo di solito avviene localmente. Un git push
si verifica in un secondo momento per trasferire i commit esistenti al repository remoto. Poiché i commit sono già fatti e referenziati dall'hash SHA1, non possono essere modificati durante un'operazione push.
Quello che si potrebbe pensare di fare è avere un hook di pre-ricezione o aggiornamento che impedisce alle persone di inviare commit che non sono stati creati, ma questo potrebbe impedire un sacco di usi legittimi. Potresti scoprire che fidarsi dei tuoi utenti è l'unica opzione sensata.
Questo non funzionerà con la natura decentralizzata di git. Imagine joe unisce ramo di sviluppo di kate. Ci sono impegna da Joe e kate nel suo clone locale ora:
* joe: Merge branch 'kate'
|\
| * joe: update foo
* | kate: fix test
* | kate: add test
|/
* joe: initial commit
If joe spinte al repository centrale ora, e si è far rispettare l'username, commit di Kate sarebbero attribuiti a joe.
Su Git-hub ogni utente ha il proprio repository git lato server. Forse potresti consentire agli utenti solo di andare in là, e avresti un amministratore che entra nel repository "ufficiale"? In questo modo, c'è completa tracciabilità e responsabilità. Avrai anche un moderatore con la responsabilità finale.
È un bel suggerimento, ma non vogliamo un singolo amministratore dato che tutti i committer sono considerati ugualmente affidabili. Un singolo amministratore sarebbe solo un overhead, che evitiamo come la peste ... – krosenvold
- 1. Git con SSH su Windows
- 2. Clone git repository su ssh con nome utente e password Java
- 3. Cambiare il nome utente per un commit Subversion su svn + ssh
- 4. .ssh config con amazon ec2 e git
- 5. Git, SSH e ProxyCommand
- 6. Utilizzo di git con ssh-agent su Windows
- 7. Cambia password SSH in Git
- 8. checkout svn + ssh con loginname
- 9. Problemi con il primo commit su git repository
- 10. Autorizzazione Git e ssh
- 11. Hudson git error ssh
- 12. Passare le opzioni ssh su git clone
- 13. SSH inverso con golang
- 14. Importazione git in due passaggi su ssh
- 15. JSch: Come ssh su un server usando i tasti ssh
- 16. Esecuzione di comandi su ssh con Java
- 17. Git e Bitbucket senza SSH
- 18. Repository Mercurial multiutente su SSH?
- 19. matplotlib su pycharm con l'interprete ssh remoto
- 20. chiave pubblica SSH Git negato
- 21. Repository privato Composer con SSH
- 22. Chiave SSH su dreamhost
- 23. Subversion con ssh per l'autenticazione
- 24. Indirizzo email come nome utente in accesso snn + ssh?
- 25. Problemi ssh durante l'implementazione con capistrano
- 26. clone ssh non funziona con github
- 27. Docker Toolbox SSH Login
- 28. Come lavorare con più chiavi ssh
- 29. SSH - Python con problema paramiko
- 30. Git portatile e GitHub: chiavi SSH
Quindi, se un utente cambia il suo nome di committente/autore e indirizzo e-mail e spinge un codice compromesso che si camuffa da collega, non c'è nulla che possa impedire questo a livello di pronti contro termine. – pinkvoid