
최근에 사용자가 ssh를 통해 "gitolite" 사용자로 git 저장소에 액세스하는 gitolite를 설정했습니다.
이제 이를 LDAP에 통합하고 싶습니다. 각 사용자는 LDAP에 공개 키를 갖고 있으며 "git" objectClass가 있으면 ssh를 통해 "gitolite" 사용자에 액세스할 수 있습니다.
LDAP에 공개 키를 저장하는 것이 가능하다는 것을 알고 있지만 objectClass를 기반으로 하는 "gitosis" 계정에서 인증을 허용하는 것이 가능한지는 잘 모르겠습니다.
편집하다:명확히 하기 위해 objectClass git을 사용하면 사용자 "foobar"는 ssh를 통해 "gitolite"로 로그인할 수 있습니다.
답변1
저자기톨라이트외부 키 저장소 및 그룹 멤버십 정보를 지원하는 데 도움이 되는 몇 가지 기능을 추가했습니다. 검색변경 로그LDAP용.
외부 키 저장소를 사용하려면SSHD일반적인 .ssh/authorized_keys
파일을 지원해야 합니다(이것은 알려주는 파일입니다SSHD달리다gl-인증 명령언제기톨라이트사용자가 로그인).
keydir
일반 인증 키 생성( 저장소 에 기반한 생성gitolite-admin
) 을 끄
$GL_NO_SETUP_AUTHKEYS = 0;
십시오.gitolite.rc
.- 주기적으로(키가 변경되거나 사용자가 추가될 때마다):
- 키 저장소에서 모든 SSH 키를 편리한 임시 디렉터리로 추출합니다(일반 저장소 기반에 있는 것처럼 키 파일에 대해 동일한 이름 사용
keydir
). - 달리다gl-설정-인증 키갖다기톨라이트파일 의 일부를 다시 작성하십시오
authorized_keys
.
- 키 저장소에서 모든 SSH 키를 편리한 임시 디렉터리로 추출합니다(일반 저장소 기반에 있는 것처럼 키 파일에 대해 동일한 이름 사용
보다소개된 커밋 메시지gl-설정-인증 키저자 자신의 설명을 위해.
외부에서 정의된 사용자 그룹을 사용하는 것은 일반적으로 그룹 사이에 다른 프로그램을 삽입하는 작업을 포함하므로 약간 까다롭습니다.SSHD그리고gl-인증 명령(그룹 멤버십은 추가 인수로 전달됩니다.gl-인증 명령). 보다"사용자 그룹 및 LDAP/유사 도구".
답변2
조금 특이한 것을 시도하고 싶다면 .ssh/authorized_keys2를 명명된 파이프로 만들고 LDAP를 쿼리하고 적절한 필터링을 수행한 다음 Authorized_keys 키의 내용을 내보내는 스크립트/프로그램을 작성합니다. 이미 Authorized_keys를 사용하고 계시기 때문에 Authorized_keys2를 제안합니다.
스크립트에 주의해야 합니다(쓰기 차단 주의, 새로운 쿼리 수행 시기 파악 등). 하지만 올바르게 수행하면 매번 올바른 답변을 제공할 것입니다.