J'ai lu la question: Comment l'authentification GitHub fonctionne-t-elle? et https://unix.stackexchange.com/questions/315615/is-sssh -Public-clé-clé-utilisateur-A-utilisateur qui est exactement ce que je me demande. Je manque toujours une meilleure réponse.

Lorsque je teste ma paire de clé SSH, je vous connecte à l'utilisateur git@gitlab.com. Ma clé publique stockée a une empreinte digue de base64. Lorsque le client SSH (ME) veulent vous connecter au serveur (mon serveur de compte GITLAB / GITUB), il envoie son identifiant (empreinte digitale), le serveur vérifie-la ".sSh / autorisé_keys" et boucline les empreintes digitales après la bonne clé publique à crypter le défi.

Sur GitHub / Gitlab Il y a plusieurs milliers d'utilisateurs, ils utilisent tous le même nom d'utilisateur ("Git") pour lancer une session Web (SaaS). Alors, comment cela est-il séparé sur le serveur? Je n'ai pas accès à la racine sur Gitlab / Github, bien sûr. Je n'ai accès qu'à mon compte si l'utilisateur générique-session git@gitlab.com. Mais comment cela est-il mis en œuvre?

Quand j'utilise ssh dans d'autres situations, j'ai un nom d'utilisateur spécifique que j'utilise pour [mon-d'utilisateur] @ router.com

Par exemple. Si je confiné mon propre gitlab sur un NAS / serveur local. Comment créer un compte (user@local-gitlab.com), mais les droits d'accès sont limités à l'empreinte digitale des différents utilisateurs SSH-Key-Key-Key-Key?

User: ID:001
User: ID:002
User: ID:003

D'une manière ou d'une autre, j'ai besoin de limiter l'accès à l'ID: 001 Lorsqu'il initie une session SSH avec mon serveur sur le compte "Utilisateur".

1
Aard 2 mai 2021 à 17:31

2 réponses

Meilleure réponse

Je ne peux pas parler de gitlab, mais pour GitHub, il existe un service dédié qui termine ces connexions, contacte le service d'authentification avec la clé en question, puis reçoit la réponse sur la question de savoir si l'utilisateur est autorisé à accéder à ce repo, et si Donc, contactez les serveurs stockant les données.

GitHub compte plus de 65 millions d'utilisateurs, de nombreux utilisateurs ont plusieurs touches SSH et de déployer également des clés pour les serveurs. L'utilisation de la directive command avec un fichier openssh authorized_keys serait extrêmement lente, car il serait impliqué d'analyser et de lire probablement des gigaoctets de données chaque fois qu'une connexion a été faite.

Si vous en avez besoin vous-même pour un petit ensemble d'utilisateurs, la directive command dans authorized_keys est une approche viable. Si vous avez besoin de quelque chose de plus évolutif, vous pouvez créer un serveur personnalisé avec quelque chose comme LibssH et effectuer l'authentification vous-même, soit dans ce processus, soit dans un processus séparé.

1
bk2204 3 mai 2021 à 23:58

J'ai trouvé cette question + réponse: https://security.stackexchange.com/questions/34216/how-to-secure-ssh-such-that-multiple-utilisateurs-Can-log-in-a-one-accompount . Qui met en évidence que vous pouvez mettre des restrictions sur autorisé_keys. Je ne sais pas si cela fournit une réponse précise pour ma question, mais cela ressemble à cela.

command="/usr/local/bin/restricted-app",from="192.0.2.0/24",no-agent-forwarding,no-port-forwarding,no-x11-forwarding ssh-rsa AAAA… git@gitlab.com

Je suppose qu'il y a plusieurs milliers de ces lignes chez Gitlab / GitHub Server dans .ssh / Authorized_Keys où chaque ligne indique l'accès à ce compte gitlab / hub.

S'il vous plaît commenter si vous n'êtes pas d'accord.

0
Aard 2 mai 2021 à 19:25