Ubuntu Git 서버 구축
1. 설치 절차
1.python setuptools 다운로드 및 설치
sudo apt-get install python-setuptools
2.gitosis 다운로드 및 설치
cd ~/src
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install
3. 사용자git 추가
sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /home/git \
git
4. 기본 키 생성
만약 ~/.ssh/id_rsa.pub 이 단계를 생략합니다.
ssh-keygen -t rsa
5. 서버 임시 디렉터리에 키 업로드
scp ~/.ssh/id_rsa.pub 사용자 이름@ 호스트:/tmp
6. 초사화gitosis
서버로 돌아가기
sudo -H -u git gitosis-init
7. post-update 권한 수정
sudo chmod 755/home/git/repositories/gitosis-admin.git/hooks/post-update
8. clonegitosis 관리 플랫폼
git clone git@ 호스트 이름:gitosis-admin.git
cd gitosis-admin
9. 설치 완료
gitosis-admin 수정을 통해 gitosis 사용자 권한 관리
키디르에 공밀 추가, 사용자 추가
수정이 끝난 후commit,push는 중 서버에 가서 창고 권한에 대한 작업을 완성할 수 있습니다.
2. 실례
목표: 사용자john과 창고foo를gitosis에 추가하고 관리자miao와 합작 관리
1. 사용자 john id_ 추가 및 보내기rsa.pub
john:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/john/.ssh/id_rsa):
Created directory '/home/john/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in/home/john/.ssh/id_rsa.
Your public key has been saved in/home/john/.ssh/id_rsa.pub.
john:~$ cp/home/john/.ssh/id_rsa.pub/tmp
2.gitosis 관리자miao가 john 권한을 할당
miao:~$ cd ~/projects
git clone [email protected]:gitosis-admin
cd gitosis-admin
cat gitosis.conf
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = miao@u32-192-168-1-110
ls keydir/
[email protected]
cp/tmp/id_rsa.pub keydir/john.pub
vi gitosis.conf
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = miao@u32-192-168-1-110
[group foo]
writable = foo
members = miao@u32-192-168-1-110 john
git add .
git commit -am "add member john and project foo"
git push
3. 사용자 miao 항목 추가 foo
miao:~$ cd ~/projects
mkdir foo
cd foo
git init
touch hello.txt
git add hello.txt
git commit -am 'first commit'
git remote add origin [email protected]:foo.git
git push origin master
4. 사용자 john clone Foo 및 hello를 수정합니다.txt
john:~$ git clone [email protected]:foo.git
cd foo
ls
date > hello.txt
git commit -am 'add time to hello.txt' && git push
5. 사용자 miao pull Foo
miao:~/projects/foo$ vi .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = [email protected]:foo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
git pull
3. FAQ
우선/home/git/repositories/gitosis-admin을 확정합니다.git/hooks/post-update는 실행 가능한 속성입니다.
1.git 작업은 비밀번호를 입력해야 한다
원인
기밀을 찾을 수 없습니다.
해결하다
업로드 id_pub.rsa에서 keydir로'gitosis 계정으로 변경합니다.pub'형식, 예를 들어miao.pub.확장자pub 생략불가
2. ERROR:gitosis.serve.main:Repository read access denied
원인
gitosis.conf의members와keydir의 사용자 이름이 일치하지 않습니다. 예를 들어gitosis의members=foo@bar하지만 키디르의 공밀명은foo라고 합니다.pub
해결하다
키디르의 이름을gitosis에서members가 가리키는 이름과 일치하게 합니다.
members = foo 또는 공밀 이름으로 변경[email protected]
ssh로 키 문제를 사용하여 서명하는 에이전트 인증 실패 해결
ssh 구성
이전에 이 컴퓨터에 ssh를 설치하려면 sudo apt-get install ssh 또는 신립드를 통해 설치할 수 있습니다.만약 설정이 이루어지지 않았다면 본 컴퓨터나 원격 호스트에 로그인하려면 이 호스트의 비밀번호가 필요합니다.암호 없이 로그인하도록 구성합니다.
간단합니다. ssh-keygen-trsa 명령을 실행하고 차를 두드리면 됩니다. 바로 있습니다.ssh 폴더 아래에 파일 2개, 공개 키 및 개인 키 파일, id_rsa id_rsa.pub, 그리고cp~/를 실행합니다.ssh/id_rsa.pub ~/.ssh/authorized_keys 명령.이렇게 설정하면 비밀번호 없이 이 컴퓨터에 로그인할 수 있다.원격 호스트에 로그인하려면 authorized_keys 파일을 원격 호스트로 보내는 ~/.ssh/디렉터리 아래.
현재 ssh는 같은 방법을 사용하면 오류 메시지가 발생합니다
Agent admitted failure to sign using the key
해결 방법은 ssh-add 명령을 사용하여 개인 키를 추가합니다 (개인 스푼 이름에 따라 id_rsa 변경) #ssh-add ~/.ssh/id_rsa
ssh 호스트 이름을 통해 비밀번호 없이 로그인할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.