Windows Server 2016에 Windows 용 Git을 설치하고 여러 사람이 개발 한 버전 관리 시스템을 만들 때 ssh가 통과하는 동안 git clone이 오류가되는 경우의 해결 방법
3537 단어 WindowsServerGit
소개
회사 내에서 Git을 이용한 개발 소스 코드의 버전 관리 시스템을 구축할 때 Windows Server에 Git For Windows를 설치하여 여러 사람 개발에서 버전 관리 시스템을 만들 때 참고 사이트처럼 설정하면서 구축 작업을 진행하고 있었는데, 다음과 같은 에러에 시달리기 때문에 그 때의 대처법을 메모한다.
발생한 오류
Windows Server에서 OpenSSH의 sshd를 기동해, 개발용 PC로부터 ssh 접속에 의해 git clone했을 때, 아래와 같은 에러가 발생해 클론 할 수 없었다.
[ユーザー名]@[コンピューター名] MINGW64 ~
$ git clone ssh://[ユーザー名]@[サーバーのIPアドレス]/c:/repos/test.git
Cloning into 'test.git'...
[ユーザー名]@[サーバーのIPアドレス]'s password:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Windows Server에서 Git For Windows의 sshd를 기동했을 때는 상기 에러는 발생하지 않고 clone이 가능하다. 그러나 접속하는 유저명으로 sshd를 기동하지 않으면 아래와 같은 다른 에러가 발생했기 때문에 대처법을 생각하지 않으면 안 되었다.
Windows Server 쪽에서 administrator에서/usr/bin/sshd.exe를 기동해, 클라이언트로부터 administrator 이외의 접속 유저명으로 ssh 접속했을 때 Windows Server측에서 발생하는 에러는 아래와 같은 것이었다.
debug1: temporarily_use_uid: 1049696/1049089 (e=1049076/1049089)
seteuid 1049696: Operation not permitted
debug1: do_cleanup
debug1: Killing privsep child 7364
구축할 버전 관리 시스템의 이미지
설치한 소프트웨어
Windows Server 2016
[ユーザー名]@[コンピューター名] MINGW64 ~
$ git clone ssh://[ユーザー名]@[サーバーのIPアドレス]/c:/repos/test.git
Cloning into 'test.git'...
[ユーザー名]@[サーバーのIPアドレス]'s password:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
debug1: temporarily_use_uid: 1049696/1049089 (e=1049076/1049089)
seteuid 1049696: Operation not permitted
debug1: do_cleanup
debug1: Killing privsep child 7364
Windows Server 2016
개발 작업용 PC
버전 관리 시스템 작성시 참고로 한 사이트
해결 방법
참고로 한 사이트와 같이 설정하면 에러가 발생해 생각대로 동작하지 않았으므로, 다음과 같은 순서를 추가했다.
1. Windows Server의 Git For Windows 명령을 저장한 폴더로 경로를 통과시킵니다.
제어판의 시스템 고급 설정을 열고 환경 변수를 엽니다.
다음과 같은 환경 변수를 추가한다.
· C:\Program Files\Git\cmd
· C:\Program Files\Git\usr\bin
· C:\Program Files\Git\bin
· C:\Program Files\Git\mingw64\bin
· C:\Program Files\Git\mingw64\libexec\git-core
2. Window Server의 사용자에게 원격 리포지토리에 대한 액세스 권한(읽기/쓰기)을 추가합니다.
Active Directory에서 개발자용 그룹이나 정책을 작성하고 있는 경우에는 개발자 그룹의 쓰기 권한을 Git 리포지토리의 폴더에 부여한다.
3. Window Server의 OpenSSH 기본 셸을 Git for Windows bash로 변경합니다.
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\Git\git-bash.exe" -PropertyType String -Force
확인
OpenSSH sshd를 시작합니다.
※ 만약을 위해 PsExec64에서 system 권한으로 기동한다.
git clone
작업용 PC에서 ssh 접속으로 git clone하면 아래와 같이 성공한다.
[ユーザー名]@[コンピューター名] MINGW64 ~/source
$ git clone ssh://[ユーザー名]@[サーバーのIPアドレス]/c/repos/test.git
Cloning into 'test'...
[ユーザー名]@[サーバーのIPアドレス]'s password:
warning: You appear to have cloned an empty repository.
Reference
이 문제에 관하여(Windows Server 2016에 Windows 용 Git을 설치하고 여러 사람이 개발 한 버전 관리 시스템을 만들 때 ssh가 통과하는 동안 git clone이 오류가되는 경우의 해결 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/qiita_mona/items/2e96a3319de6583f340f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)