En el minuto 7:45 al parecer en la edición se les olvidó colocar la parte donde se obtiene la llave pública, el comando es:
gpg --armor --export mail@gmail.com > key.pub```
Introducción
Lo que aprenderás sobre DevOps con GitLab
¿Qué es Devops?
El ciclo de vida del Devops
Introducción a Gitlab
Gitlab vs Github
Administración
Autenticación
Grupos
Autorización
Auditoría
Proyectos
Planificación
Tipos de desarrollo
Planificación en Gitlab-Issues
Planificación en Gitlab-Etiquetas
Planificación en Gitlab-Pesos
Planificación en Gitlab-Milestones
Planificación en Gitlab-Boards
Planificación en Gitlab-Service Desk
Planificación en Gitlab-Quick actions
Verificación
Inicialización del repositorio
Merge requests
Profundizando en Merge requests
Continuous Integration-CI
Gitlab CI
Automatizacion con GitLab Cl
Validacion de la configuracion con GitLab Cl
gitlab-ci.yml
Gitlab pages
Implementando Gitlab pages
¿Qué es el Desarrollo Ágil?
Gitlab autodevops
Implementando GitLab autodevops
Habilitando autodevops
Empaquetación
Gitlab container registry
Introducción a contenedores
Seguridad
Introducción a DevSecOps
Firmas de seguridad
Pruebas estáticas de seguridad
Escaneo de contenedores
Escaneo de dependencias
Pruebas dinámicas de seguridad
Gitlab security dashboard
Distribución
Continuous Delivery (CD)
Ambientes
Review apps
Estrategias de Distribución
Feature Flags
Rollback
Monitoreo
¿Por qué monitorear?
Métricas de desempeño (performance metrics)
Métricas de salud (health metrics)
Metricas de equipo
Rastreo de errores
Conclusiones
¿Por qué desarrollar con Gitlab?
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
GPG permite identificar, sin lugar a dudas, de quién proviene un commit; añade una capa adicional de seguridad a Git para prevenir ““caballos de troya””.
Gitlab despliega un banner junto a los commits para mostrar que dichos commits están verificados.
Aportes 21
Preguntas 6
En el minuto 7:45 al parecer en la edición se les olvidó colocar la parte donde se obtiene la llave pública, el comando es:
gpg --armor --export mail@gmail.com > key.pub```
En esta clase faltó indicar que para que el commit sea firmado con el GPG es necesario agregar la opción “-S” en el commit, sino realiza un commit normal. Ej.:
git commit -S -am "Este es un commit firmado con GPG"```
**Instalación de GPG en macOS **
-Isntalar el manejador de paquetes para Mac Homebrew
Abrir la terminal y ejecutar el siguiente comando:
** /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”**
Ahora Homebrew solo es una copia superficial para traer la historia completa ejecutamos el siguiente comando:
git -C “$(brew --repo homebrew/core)” fetch --unshallow
Una ves actualizado nuestro manejador de paquetes instalamos gpg con el siguiente comando:
brew install gpg
Para verificar que se ha instalado correctamente podemos ejecutar el siguiente comando:
which gpg, y debería devolvernos la ruta del directorio donde fue instalada por ej: /usr/local/bin/gpg
Para obtener la llave publica :
Pega el siguiente texto sustituyendo el ID de la llave GPG que deseas usar. En este ejemplo, el ID de la llave GPG es 3AA5C34371567BD2:
$ gpg --armor --export 3AA5C34371567BD2# Imprime la llave GPG, en formato ASCII armor
Generating a GPG key
Todos los pasos de esta clase:
https://gitlab.com/help/user/project/repository/gpg_signed_commits/index.md
Les comparto este tutorial que cree basado en está clase.
Para aquellos que quieran instalar pinentry mac:
brew install pinentry-mac```
Recuerden que primero tinen que instalar brew
Recuerden pasar el parámetro -S
a los commits para que tengan la firma digital
git commit -S -m "Esto es un commit"
My summary:
# know if gpg is installed
which gpg
# install gpg with brew
brew install gpg
# installa pineentry mac (pgp handler)
brew install pinentry-mac
# generate key
gpg --full-gen-key
# 1. select algorith (RSA and RSA for default)
# 2. select keysize (the longer the better)
# 3. specify key time validation (1 year could be fine)
# 4. Fill out your personal data. Email must the same as your GitLab account mail
# list keys
# GPG key ID -> that starts with sec i.e. rsa4096/<GPG-key-ID>
gpg -k --keyid-format LONG
gpg --list-secret-key --keyid-format LONG
gpg --list-secret-key --keyid-format LONG <your-email>
# export the public key and add to GitLab (User Settings > GPG Keys)
gpg --armor --export <GPG-key-ID> | pbcopy
# configure git to use the public key to sign commits
git config --global user.signingkey <GPG-key-ID>
git config --global gpg.program gpg
# commit with -S flag to sign
git commit -S -m "My signed commit"
# or tell Git to sign your commits automatically
git config --global commit.gpgsign true
# DELETE GPG KEYS
# first delete private key
gpg --delete-secret-key key-ID
# then delete public key
gpg --delete-key key-ID
# para generar llave de seguridad.
gpg --full-gen-key
#mostar las llaves generadas
gpg --list-secret-key --keyid-format LONG <correo>
#exportar la llave pública
gpg --armor --export key_id
#configar la llave en git
git config --global user.signingkey key_id
git config --global gpg.program gpg
Normalmente las llaves gpg deben de expirar en un año.
Por favor pongan su correo… jajaja…
Si llegan a el siguiente problema generando las llaves gpg:
Es un problema de permisos, se soluciona cambiando el usuario y grupo de la carpeta ~/.gnupg
:
sudo chown -R myuser:myuser ~/.gnupg
Buenas tardes, tiene alguien quien facilite para su uso en Windows?
Aqui un resument en medium que encontre por ahi… https://medium.com/@jma/setup-gpg-for-git-on-macos-4ad69e8d3733
Para generar las claves si o si tenemos que usar GPG de linux? o hay un GPG para windows.
Si les falla la opción --full-gen-key
, pueden usar --gen-key
.
Hola tengo una duda, yo he podido firmar mis commit sin problemas. Ahora. ¿Existe alguna forma de controlar que nadie pueda dar commit en mi pc si los mismos no están firmados? La cuestión esta que si no ponemos el prefijo -S, el commit se va sin firmar, por ejemplo, yo utilizo el IDE Intellij para dar los commit y este por defecto no aplica el prefijo -S, por lo que todos los commit que haga usando le GUI del IDE no van a estar firmados.
Un dato, si al aplicar un commit les manda este error:
git commit -S -m "test gpg"
error: gpg failed to sign the data
fatal: failed to write commit object
exporten la variable GPG_TTY
export GPG_TTY=$(tty)
Con esto les pedirá la passphrase de sus gpg y funcionara su commit.
Para dejarlo permanente, agregen la variable al .bash_profile de su usuario.
Acá una guía del paso a paso de la configuración de SSH y de GPG.
Para los que usan Mac y Brew, la instalación del package gnupg:
brew install gnupg
yo uso syspeace y rdp guard para la seguridad de mis servidores
Para los que quieran usar la gpg en windows descargen de aca el gpg https://www.gpg4win.org/ y luego en el command pront de windows podran seguir los pasos.
Si es sale error al hacer el commit usen este comando para indicar la ruta de instalacion del gpg, para saber la ruta de instalacion usen “where gpg”. con eso ya les deberia funcionar en windows
git config --global gpg.program "/c/Program Files/Git/usr/bin/gpg.exe"
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.