doc-locale/fr-fr/administration/operations/gitlab_sshd.md
{{< details >}}
{{< /details >}}
gitlab-sshd est un serveur SSH autonome écrit en Go. Il s'agit d'une alternative légère à OpenSSH. Il fait partie du package gitlab-shell et gère les opérations SSH.
Alors qu'OpenSSH utilise une approche de shell restreint, gitlab-sshd :
Pour plus de détails sur l'implémentation, consultez l'article de blog.
Si vous envisagez de passer d'OpenSSH à gitlab-sshd, tenez compte des points suivants :
gitlab-sshd prend en charge le protocole PROXY, ce qui lui permet de s'exécuter derrière des serveurs proxy tels que HAProxy. Cette fonctionnalité n'est pas activée par défaut, mais peut être activée.gitlab-sshd prend en charge l'authentification par certificat SSH au niveau de l'instance en utilisant des clés CA de confiance configurées dans config.yml. Pour plus d'informations, consultez Certificats SSH au niveau de l'instance avec gitlab-sshd.gitlab-sshd ne prend pas en charge la régénération des codes de récupération 2FA. Toute tentative d'exécution de 2fa_recovery_codes génère l'erreur : remote: ERROR: Unknown command: 2fa_recovery_codes. Consultez la discussion pour plus de détails.Les capacités de GitLab Shell vont au-delà des opérations Git et peuvent être utilisées pour diverses interactions SSH avec GitLab.
gitlab-sshd {#enable-gitlab-sshd}Pour utiliser gitlab-sshd :
{{< tabs >}}
{{< tab title="Linux package (Omnibus)" >}}
Les instructions suivantes permettent d'activer gitlab-sshd sur un port différent de celui d'OpenSSH :
Modifiez /etc/gitlab/gitlab.rb :
gitlab_sshd['enable'] = true
gitlab_sshd['listen_address'] = '[::]:2222' # Adjust the port accordingly
Facultatif. Par défaut, les installations de packages Linux génèrent des clés d'hôte SSH pour gitlab-sshd si elles n'existent pas dans /var/opt/gitlab/gitlab-sshd. Si vous souhaitez désactiver cette génération automatique, ajoutez cette ligne :
gitlab_sshd['generate_host_keys'] = false
Enregistrez le fichier et reconfigurez GitLab :
sudo gitlab-ctl reconfigure
Par défaut, gitlab-sshd s'exécute en tant qu'utilisateur git. Par conséquent, gitlab-sshd ne peut pas s'exécuter sur des numéros de port privilégiés inférieurs à 1024. Cela signifie que les utilisateurs doivent accéder à Git via le port gitlab-sshd, ou utiliser un équilibreur de charge qui dirige le trafic SSH vers le port gitlab-sshd pour masquer cela.
Les utilisateurs peuvent voir des avertissements concernant les clés d'hôte, car les clés d'hôte nouvellement générées diffèrent des clés d'hôte OpenSSH. Envisagez de désactiver la génération des clés d'hôte et de copier les clés d'hôte OpenSSH existantes dans /var/opt/gitlab/gitlab-sshd si cela pose problème.
{{< /tab >}}
{{< tab title="Helm chart (Kubernetes)" >}}
Les instructions suivantes permettent de passer d'OpenSSH à gitlab-sshd :
Définissez l'option sshDaemon des charts gitlab-shell sur gitlab-sshd. Par exemple :
gitlab:
gitlab-shell:
sshDaemon: gitlab-sshd
Effectuez une mise à niveau Helm.
Par défaut, gitlab-sshd écoute :
global.shell.port).gitlab.gitlab-shell.service.internalPort).Vous pouvez configurer différents ports dans le chart Helm.
{{< /tab >}}
{{< /tabs >}}
Les équilibreurs de charge placés devant gitlab-sshd obligent GitLab à signaler l'adresse IP du proxy au lieu de l'adresse IP du client. Pour obtenir la véritable adresse IP, gitlab-sshd prend en charge le protocole PROXY.
{{< tabs >}}
{{< tab title="Linux package (Omnibus)" >}}
Pour activer le protocole PROXY :
Modifiez /etc/gitlab/gitlab.rb :
gitlab_sshd['proxy_protocol'] = true
# Proxy protocol policy ("use", "require", "reject", "ignore"), "use" is the default value
gitlab_sshd['proxy_policy'] = "use"
Pour plus d'informations sur les options gitlab_sshd['proxy_policy'], consultez la bibliothèque go-proxyproto.
Enregistrez le fichier et reconfigurez GitLab :
sudo gitlab-ctl reconfigure
{{< /tab >}}
{{< tab title="Helm chart (Kubernetes)" >}}
Définissez les options gitlab.gitlab-shell.config. Par exemple :
gitlab:
gitlab-shell:
config:
proxyProtocol: true
proxyPolicy: "use"
Effectuez une mise à niveau Helm.
{{< /tab >}}
{{< /tabs >}}