SSH 액세스로 Git 서버 설정

SSH 액세스로 Git 서버 설정

클라이언트 인증서와 함께 ssh 및 https를 통해 git 저장소를 호스팅하는 서버를 설정하고 싶습니다. 나는 멋진 GUI나 그와 유사한 것(예: Bitbucket, GitLab 등)을 원하지 않고 단지 저장소 호스팅을 위한 최소한의 구성을 원합니다.

그러나 나는 리포지토리 간의 사용자 분리를 원합니다.

나는 이미 https 사례에 대한 솔루션과 ssh에 대한 성가신 솔루션을 가지고 있습니다.

다중 사용자 ssh git 서버 구성에 대해 몇 가지 검색을 수행했지만 내가 찾은 가이드의 기본 가정은 모든 저장소에 모든 사용자가 액세스할 수 있다는 것입니다. 즉, "git" 사용자를 생성하고 모든 사용자의 공개 키를 ~git/.ssh/authorized_keys에 추가하고 "git" 사용자에 대해 git-shell을 사용하고 "git" 사용자 아래의 모든 저장소를 호스팅합니다.

내가 달성하고 싶은 것은 관리자가 SSH 키를 프로젝트에 추가하여 명시적인 권한을 부여하지 않는 한 기본적으로 사용자가 액세스할 수 없는 여러 저장소를 호스팅하는 것입니다.

나는 이전에 시스템에서 각 사용자에게 서로 다른 계정을 할당하고 공유를 위해 일반 그룹 권한을 사용하여 이를 달성했지만 몇 가지 이유로 번거롭습니다.

이 기능을 원활하게 작동시키기 위한 일반적인 이론은 무엇입니까?

기본 아이디어는 "git" 사용자를 갖고 각 사용자를 ~git/authorized_keys에 넣는 것이라고 가정합니다.하지만SSH가 인증되면 모든 저장소 권한이 포함된 일부 외부 사용자 데이터베이스에 인증 정보를 전달한 다음 해당 데이터베이스를 사용하여 파일 시스템 액세스 확인을 적절하게 수행합니다.

답변1

저는 몇 년 전에 SVN에서 이 작업을 수행했습니다. Unix 계정을 설정했습니다. 즉, git@ 사용자 키가 에 추가되고 ~git/authorized_keys, 사용자가 로그인할 때 서버 실행에 대한 추가 내용(예: git-shell)이 추가됩니다.

지금까지 4절에서 말씀하신 대로였습니다.

누락된 점은 각 항목 에 사용자 이름을 알려주는 ~git/authorized_keys다른 매개변수가 전달된다는 것입니다 . 그런 다음 다른 사용자에 대해 해당 조치를 취해야 합니다. 즉, 자신만의 사용자 철학을 가지고 있는 것입니다.git-shellgit-shell

답변2

구경하다https://github.com/sitaramc/gitolite그것이 당신에게 효과가 있는지 확인하기 위해.

관련 정보