Per tal de millorar la seguretat i facilitar als usuaris l’accés al Servei de Custòdia de Codi (Gitlab), s’ha habilitat l’autenticació xifrada amb parell de claus pública/privada via protocol SSH. Aquest how-to va dirigit a tots aquells perfils tècnics que tinguin la necessitat de fer-ne ús.
A continuació, s’indiquen les passes que cal seguir en un entorn local Linux amb les eines OpenSSH instal·lades per a habilitar aquesta funcionalitat. En cas de no disposar d’aquestes eines, podeu executar la següent comanda:
sudo apt install openssh-client
Caldrà generar un parell de claus SSH. En el següent exemple es crearà un directori específic per a desar-hi les claus:
mkdir ~/.ssh/gitlab_ssh
ssh-keygen -t rsa -b 4096 -C "<identificador>" -f ~/.ssh/gitlab_ssh/myuser
NOTA: el paràmetre -C “\<identificador\>”
és opcional. Si s’omet, l’eina genera automàticament un identificador en
format myuser@host
. En aquest article utilitzarem, de forma il·lustrativa, myuser@host
.
Per exemple:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/gitlab_ssh/myuser
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/myuser/.ssh/gitlab_ssh/myuser
Your public key has been saved in /home/myuser/.ssh/gitlab_ssh/myuser.pub
The key fingerprint is:
SHA256:d9A4knZXvDLwmQWG6yzqv1Xdt7VgZS7VZiIWZN7S7iw myuser@host
The key's randomart image is:
+---[RSA 4096]----+
| o*o. |
| .o* =o .|
| + =+B++=+|
| . o.=*=*= |
| So. o*o.+|
| ..oo.oo =|
| . .. E oo |
| . . . |
| ...o. |
+----[SHA256]-----+
A continuació, caldrà afegir la clau privada generada a l’agent d’autenticació SSH. Per exemple:
ssh-add ~/.ssh/gitlab_ssh/myuser
Identity added: /home/myuser/.ssh/gitlab_ssh/myuser (myuser@host)
A continuació, caldrà afegir la següent entrada al fitxer de configuració SSH: ~/.ssh/config
. Per exemple:
Host git.intranet.gencat.cat
Hostname 10.54.67.30
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_ssh/myuser <--- Afegiu la ruta de la clau privada creada localment
A continuació, caldrà obtenir el text/valor de la clau pública generada ~/.ssh/gitlab_ssh/myuser.pub
.
Per exemple:
cat /home/myuser/.ssh/gitlab_ssh/myuser.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCi3sQ7Q9dHRb/pcqrVGho2OzpgHEfsLXL4Pav1Zz0qmUfMhc0t1Q8/MABU5BXKLTfJH8CvqJMNY8ngwRrgMXlM6UNL7RPfQsyV8CfauzzUJXRnoJuoWAG6ftUNcnUCg+hOeMzHdcIaASeA5eBR/3hmxN0sp8VxjL0wwySlVVMHkDYETH5YKPGyNIIApiFc9kfKCvSncnePFPQiTyqAzL/pDDipzNpV9LigQTL9LxOHaBoI8gvWLaZrThpCxKHwbDiGB8xZpoOU8PcSy3lQ8QRdvsnA31Pdo713Sso/y+mRCHa4gbIRQZHETO7kB+4/sRxW5XAYAoFexDFjORVVOaxgUKo4b1JNLsfdINUhdfFfnSNNFc70H1CcogrPSda7Da4jsOz7M7jV12r+lXhZAxz/xWHYaup96LDLQK+W83FAzE0Cq8kE3DdrK4mb+xb4cxWLqSafKEsZ+PZloLitiOOFYGkqwv1L6aU0J5M7ps5g5hVB0o2jW/RQ65okcshm6uUPScRYtvSTySPcCvX99L6SXjHMggtdvMhUhIt1H4NBddYGwzO6ZTtEbCHCs9LrzpIzmvg/yrRid3tRN0zPHlVfscxfP11WasGMAJk8DscVqMIWCusUjN+ByVRXnED3peC5sx0RSjvR41gawTZPt6mSVeKd7AgSYEA3OBr9m+ifmw==mysuser@host
O bé, executant:
xclip -sel clip < ~/.ssh/gitlab_ssh/mysuser.pub
A continuació, caldrà crear la clau SSH a la configuració del nostre compte al Gitlab corporatiu:
Accediu a https://git.intranet.gencat.cat/-/profile/keys, i
Enganxeu el valor de la clau pública indicant un títol identificador i, si convé, una data de caducitat.
Per acabar, caldrà comprovar el correcte funcionament executant la següent comanda:
ssh -T git@git.intranet.gencat.cat
Welcome to GitLab, @XXXXXXXXB!
Per a més informació, podeu consultar: Use SSH keys to communicate with GitLab.