git 웨어하우스 서버 SSH 인증 예
만약 팀의 모든 사람이 창고에 쓰기 권한이 있고 서버에 계정을 만들 수 없다면 SSH 연결을 제공하는 것이 유일한 선택이다.우리는 창고를 공유하는 서버에 SSH 서비스가 설치되어 있고 이를 통해 서버에 접근한다고 가정합니다.팀의 모든 사람이 방문권을 가질 수 있는 여러 가지 방법이 있다.
첫 번째 방법은 모든 사람에게 계좌를 만들어 주는 것이다. 단도직입적이지만 너무 번거롭다.adduser를 반복적으로 실행하고 모든 사람에게 임시 비밀번호를 설정하는 것은 재미없다.두 번째 방법은 호스트에 git 계정을 만들어서 쓰기 권한이 필요한 모든 사람에게 SSH 키를 보내고 git 계정의 ~/에 가입하는 것이다.ssh/authorized_keys 파일.이렇게 되면 모두git 계정을 통해 호스트에 접근할 것입니다.이것은 제출한 데이터에 조금도 영향을 주지 않는다. 호스트에 접근하는 신분은commit의 기록에 영향을 주지 않는다.또 다른 방법은 SSH 서버가 어떤 LDAP 서비스나 이미 설정된 집중 권한 수여 메커니즘을 통해 권한을 부여하는 것이다.모든 사람이 호스트의 셸 접근권을 얻을 수 있다면 사용할 수 있는 SSH 권한 수여 메커니즘은 모두 같은 효과를 얻을 수 있다. #팀의 모든 사람이 창고에 대한 쓰기 권한이 필요하고 서버에 계정을 만들 수 없다면 SSH 연결을 제공하는 것이 유일한 선택이다.우리는 창고를 공유하는 서버에 SSH 서비스가 설치되어 있고 이를 통해 서버에 접근한다고 가정합니다.
git 공유 창고 서버: Aries.lansgg.com 192.168.100.128
git 클라이언트 테스트기:node1.lansgg.com 192.168.100.129
방법 1 예제,
git 창고 서버, 새 창고, 테스트기 획득git 창고, 수정, 원격 업로드.ssh 방식
[root@Aries ~]# useradd -d /opt/gitServer gitServer
[root@Aries ~]# echo "git"|passwd --stdin gitServer
gitServer 。
passwd: 。
[root@Aries ~]# yum install git -y
[root@Aries ~]# su - gitServer
[gitServer@Aries ~]$ ls
[gitServer@Aries ~]$ mkdir TestProject.git
[gitServer@Aries ~]$ cd TestProject.git/
[gitServer@Aries TestProject.git]$ git --bare init
Initialized empty Git repository in /opt/gitServer/TestProject.git/
[gitServer@Aries TestProject.git]$ ls
branches config description HEAD hooks info objects refs
고객 테스트기
[root@node1 ~]# useradd -d /opt/gitServer gitServer
[root@node1 ~]# echo "gitServer" |passwd --stdin gitServer
gitServer 。
passwd: 。
[root@node1 ~]# su - gitServer
[root@node1 ~]# git clone [email protected]:/opt/gitServer/TestProject.git
Initialized empty Git repository in /root/TestProject/.git/
The authenticity of host '192.168.100.128 (192.168.100.128)' can't be established.
RSA key fingerprint is 9f:32:3a:b0:db:03:b6:c8:fc:a0:47:6c:e5:d1:b0:6a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.128' (RSA) to the list of known hosts.
[email protected]'s password:
warning: You appear to have cloned an empty repository.
[root@node1 ~]# ls
anaconda-ks.cfg install.log install.log.syslog TestProject
[root@node1 ~]# cd TestProject/
[root@node1 TestProject]# echo "test file" > test.file
[root@node1 TestProject]# git add test.file
[root@node1 TestProject]# git config --global user.name "gitServer"
[root@node1 TestProject]# git config --global user.email [email protected]
[root@node1 TestProject]# git commit -m "test commit" test.file
[master 96bf273] test commit
1 files changed, 1 insertions(+), 1 deletions(-)
[gitServer@node1 TestProject]$ git remote add test_remote_origin ssh://192.168.100.128/opt/gitServer/TestProject.git
[gitServer@node1 TestProject]$ git push test_remote_origin master
[email protected]'s password:
Counting objects: 5, done.
Writing objects: 100% (3/3), 252 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://192.168.100.128/opt/gitServer/TestProject.git
7e2e4a4..96bf273 master -> master
git 창고 서버
[gitServer@Aries TestProject.git]$ git log
commit 96bf2738c6602283ea91778b999f7adf66c0082c
Author: gitServer <[email protected]>
Date: Tue Sep 22 17:05:12 2015 +0800
test commit
우리는 방금 제출한 테스트가 있는지 디렉터리clone을 찾아서 볼 수 있습니다.file
[root@Aries ~]# mkdir /opt/tt
[root@Aries ~]# cd /opt/tt
[root@Aries tt]# git clone [email protected]:/opt/gitServer/TestProject.git
Initialized empty Git repository in /opt/tt/TestProject/.git/
The authenticity of host '192.168.100.128 (192.168.100.128)' can't be established.
RSA key fingerprint is 9f:32:3a:b0:db:03:b6:c8:fc:a0:47:6c:e5:d1:b0:6a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.128' (RSA) to the list of known hosts.
[email protected]'s password:
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (2/2), done.
Receiving objects: 100% (6/6), 435 bytes, done.
remote: Total 6 (delta 0), reused 0 (delta 0)
[root@Aries tt]# ls
TestProject
[root@Aries tt]# cd TestProject/
[root@Aries TestProject]# ls
test.file
[root@Aries TestProject]# cat test.file
test file abc
[root@Aries TestProject]#
방법 2 예제,
테스트기에서 두 개의 계정을 만듭니다.user1user2는 각각git 창고 측에 비밀 키를 업로드합니다.
[root@node1 ~]# useradd -d /opt/user1 user1
[root@node1 ~]# echo "user1" |passwd --stdin user1
user1 。
passwd: 。
[root@node1 ~]# useradd -d /opt/user2 user2
[root@node1 ~]# echo "user2" |passwd --stdin user2
user2 。
passwd: 。
[root@node1 ~]#
[root@node1 ~]# su - user1
[user1@node1 ~]$ ssh-keygen -t rsa
[root@node1 ~]# su - user2
[user1@node1 ~]$ ssh-keygen -t rsa
각각user1,user2 사용자의 공개 키를git 창고 서버 옆에 추가합니다
[user2@node1 .ssh]$ pwd
/opt/user2/.ssh
[user2@node1 .ssh]$ ll
8
-rw-------. 1 user2 user2 1671 9 22 17:18 id_rsa
-rw-r--r--. 1 user2 user2 404 9 22 17:18 id_rsa.pub
[user2@node1 .ssh]$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp0Im8iL7UR2b0PWrJ98YY/nqvjnuYWNc2F52SYn1/WA8rwGBWW0WBmKMoyW8YfSpCVk7QbyhX48Y3KF/Gf16CWRMm8xuyA+S5Seq3ZGnLbbVhb0OMO8VDAldovnIuPdI6005+ux/WbG1FKr3WxGs5k92ZO9hbXxpcVAwpvHY47t1v2LH5fW2jThypWMolUdp9TaNy7FkD2zaUNhbdqM1w67OSydiHAMfj183sEso9TykiXJvwlJeLdUMFywPTwfVqu2rxV0lY68B2mwr1pl5mcGPA4/0ruX8vSFsFLev8+yi7LjccChAu/suPIFGLqRXrkW8ymsN/l3CkldnS9Y0BQ== [email protected]
[user2@node1 .ssh]$
git 창고 서비스 측
[gitServer@Aries ~]$ mkdir .ssh && chmod 700 .ssh
[gitServer@Aries ~]$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
[gitServer@Aries ~]$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1pII1U64N/wl1OXotWdcU8d8+ad0q6tkqdBgXLcR5zqXIq9PPe1NeLJ5HS9UIvZeN/LEyXGYh+fyg8tFQ+2PN3CmxnVwwcciyl1AKAgTeKUdleh8qcXPZkI0YZBpgTbuYWYHNjA6Qd9cvJSdKe9cVvwsv7N1z17Mx1uIfNSuSZ9e4XqUsJksBAzAYEGar4S13+Y/il7lquwkrdVBiWfWHmf/WoeY2RnzNBe9YtPVFUPL8HEoYyYaU+YXXMZKOZ8JwuLu1CPDJHTquSTyqdEwmgJWDdoiipgtyVOEVGZC0CqV16M2YpVqw26rrZ+nXUQYEnTrWyIiqt8/xvzmeDIf0Q== [email protected]
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp0Im8iL7UR2b0PWrJ98YY/nqvjnuYWNc2F52SYn1/WA8rwGBWW0WBmKMoyW8YfSpCVk7QbyhX48Y3KF/Gf16CWRMm8xuyA+S5Seq3ZGnLbbVhb0OMO8VDAldovnIuPdI6005+ux/WbG1FKr3WxGs5k92ZO9hbXxpcVAwpvHY47t1v2LH5fW2jThypWMolUdp9TaNy7FkD2zaUNhbdqM1w67OSydiHAMfj183sEso9TykiXJvwlJeLdUMFywPTwfVqu2rxV0lY68B2mwr1pl5mcGPA4/0ruX8vSFsFLev8+yi7LjccChAu/suPIFGLqRXrkW8ymsN/l3CkldnS9Y0BQ== [email protected]
[gitServer@Aries ~]$
사용자 이름, 암호가 필요 없는 클라이언트 테스트기
[user1@node1 ~]$ git clone [email protected]:/opt/gitServer/TestProject.git
Initialized empty Git repository in /opt/user1/TestProject/.git/
The authenticity of host '192.168.100.128 (192.168.100.128)' can't be established.
RSA key fingerprint is 9f:32:3a:b0:db:03:b6:c8:fc:a0:47:6c:e5:d1:b0:6a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.128' (RSA) to the list of known hosts.
remote: Counting objects: 9, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 9 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (9/9), done.
[user1@node1 ~]$
제출 프로세스: 다음과 같은 오류가 표시됩니다.
Counting objects: 3, done.
Writing objects: 100% (3/3), 247 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
다음 구성을
[git@JumpServer1 pl.git]$ cat .git/config
[receive]
denyCurrentBranch = ignore
다시 제출
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Heroku H10/503 오류 해결 방법 - 이야기오후 2시 30분까지 내 이해 수준에 따라 배포할 준비가 된 내 코드 를 완성했습니다. 몇 달 전에 플랫폼에 Node.js 앱을 배포하여 을 따르기로 결정했습니다. How to solve Heroku H10 erro...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.