Estoy tratando de configurar un repositorio git compartido a través de ssh, copiando las claves públicas de los usuarios a authorized_keys. Realmente me gustaría que el "nombre de usuario" de la clave ssh sea parte del historial de confirmación en el repositorio (para que el usuario "joe" no pueda simplemente configurar su nombre para que sea "kate", necesitamos algún tipo de responsabilidad) . ¿Hay alguna manera de hacer esto?¿Puedo asociar el nombre de usuario de ssh con commit con git over ssh?
Respuesta
Simplemente, no, no hay manera. La razón es que los detalles del autor y del committer se establecen cuando se realiza una confirmación y esto generalmente ocurre localmente. Un git push
ocurre en un momento posterior para enviar confirmaciones existentes al repositorio remoto. Debido a que las confirmaciones ya están hechas y referenciadas por el algoritmo hash SHA1, no pueden modificarse durante una operación de inserción.
Lo que podría considerar es tener un enlace de pre-recepción o actualización que evite que las personas envíen confirmaciones que no han escrito, pero esto podría evitar muchos usos legítimos. Puede encontrar que confiar en sus usuarios es la única opción sensata.
Eso no funcionará con la naturaleza descentralizada de git. Imagine joe fusiona kate's rama de desarrollo. Hay confirmaciones de Joe y Kate en su clon local de ahora:
* joe: Merge branch 'kate'
|\
| * joe: update foo
* | kate: fix test
* | kate: add test
|/
* joe: initial commit
If Joe empujones en el repositorio central de ahora, y que están haciendo cumplir el nombre de usuario, compromete de Kate se pueden atribuir a joe.
En Git-hub cada usuario tiene su propio repositorio git del lado del servidor. ¿Tal vez podría permitir que los usuarios solo presionen hasta allí, y usted tendría un administrador ingresando al repositorio "oficial"? De esta manera, existe una trazabilidad y responsabilidad completas. También tendrá un moderador con la responsabilidad final.
Es una buena sugerencia, pero realmente no queremos un solo administrador ya que todos los committers se consideran igualmente confiables. Un solo administrador sería solo por encima, lo que evitamos como la peste ... – krosenvold
- 1. Git con SSH en Windows
- 2. Cambiar el nombre de usuario para un commit de Subversion sobre svn + ssh
- 3. Git y ssh autorizando
- 4. git remote add con otro puerto SSH
- 5. Problemas con Amazon SSH pero no con otros SSH
- 6. checkout svn + ssh con LoginName
- 7. EC2/AWS, Jenkins, Git, SSH
- 8. Cambiar contraseña SSH en Git
- 9. Conexión SSH con Java
- 10. Hudson git error ssh
- 11. Creación de una clave SSH con ssh-keygen no crea la carpeta .ssh
- 12. Subversion con ssh para autenticación
- 13. Subprogramas de Git y acceso ssh
- 14. No puedo recuperar a través de SSH
- 15. Git en el puerto SSH personalizado
- 16. ssh problemas durante la implementación con capistrano
- 17. ssh clon no funciona con github
- 18. Conexión SSH con Python 3.0
- 19. ssh con el comando .... Más el shell
- 20. Cómo trabajar con múltiples claves ssh
- 21. Sesión anidada SSH con Paramiko
- 22. ¿Cómo se envía meta key over ssh en Mac?
- 23. ¿Cómo puedo aislar los problemas con ssh-add/ssh-agent en la implementación de msys que viene con msysgit?
- 24. Cambiar nombre de usuario en URI SVN + SSH sobre la marcha en copia de trabajo
- 25. SmartGit no se autenticará con ssh
- 26. Git SSH ha denegado el permiso de instalación (publickey)
- 27. ¿Evita que las personas presionen un commit de git con un nombre de autor diferente?
- 28. No puedo conectar usando claves con Ruby y net/ssh
- 29. ¿Cuál es el protocolo más rápido, ssh o git?
- 30. Cliente Git SSH para Windows y ruta incorrecta para el archivo .ssh/config
Entonces, si un usuario cambia el nombre del autor/autor y la dirección de correo electrónico y empuja algún código pirateado disfrazándose de colega, no hay nada que pretenda evitarlo a nivel de repositorio simple. – pinkvoid