특정 리포지토리에만 GIT_SSL_NO_VERIFY를 어떻게 설정합니까?


283

적절한 인증서없이 git 서버를 사용해야하지만 할 필요는 없습니다.

env GIT_SSL_NO_VERIFY=true git command

매번 git 작업을 수행합니다. 그러나 다른 git 리포지토리에 SSL을 사용하도록 설정하고 싶습니다. 이 로컬을 단일 리포지토리로 만드는 방법이 있습니까?



f15ijp.com/2012/08/… 내가 찾은 최고의 솔루션 중 하나
vikas etagi

답변:


540

넌 할 수있어

git config http.sslVerify false

특정 리포지토리에서 해당 리포지토리에 대해서만 SSL 인증서 검사를 비활성화합니다.


54
git config --global http.sslVerify "false"
roothahn

24
OP는 특정 repos에 대해서만 원할 것을 요청했기 때문에 --global을 사용해서는 안됩니다.
Kannan Ekanath

9
참고 : --global리포지토리가 아직 체크 아웃되지 않은 경우 IS 옵션이 필요한 것 같습니다 (아직 로컬에 존재하지 않는 리포지토리에 대한 옵션을 설정할 수 없음). 나중에 언제든지 다시 켤 수 있습니다.
제임스 윌킨스

2
질문에 특별히이를 묻지 않았기 때문에 편집을 롤백했습니다. 보안상의 이유로이 기능을 전역 적으로 비활성화하는 것은 좋지 않습니다.
Étienne

2
위와 같은 이유로 편집 내용을 다시 롤백했습니다. 이 질문은 특정 저장소에 관한 것입니다. 모든 repos에 대한 답변을 원한다면 별도의 질문이어야합니다.
Calimo

121

다음과 같이 할 수 있습니다

단일 레포

git config http.sslVerify false

모든 레포

git config --global http.sslVerify false

7
이렇게하면 모든 리포지토리에 대한 SSL 확인이 비활성화됩니다. 원래 질문은 단일 저장소에 로컬로 만드는 것입니다.
Gwynne Raskind

4
세계에서 왜 sudo를 사용하고 있습니까? 로컬 리포지토리에는 필요하지 않으며 사용자 구성은 $ HOME (시스템에있는 것)에 있으므로 sudo도 필요하지 않습니다.
mcepl

@ParthianShot 관리자가 아닌 경우 sudo없이 이것을 어떻게 사용할 수 있습니까?
Thirumalai murugan

1
@Thirumalaimurugan 당신은 지금 진지합니까? sudo실제로 뭔가를하기 위해 루트 가 필요할 때만 사용해야합니다 . 새 소프트웨어 설치, 중요한 시스템 파일 수정, 드라이브 재 포맷, 네트워크 재구성, 서비스 관리와 같이 ...이 사람의 질문에는 그가 무엇이든 할 루트가 필요하다는 것을 암시하는 것이 없습니다. 관리자 인 경우 구성을 변경하는 명령을 포함하여 대부분의 명령을 대부분 sudo없이 실행해야합니다.
Parthian Shot

1
@HolaSoyEduFelizNavidad, OP가 "모든 저장소에 대해"라고 말했을 때 OP는 "컴퓨터의 모든 저장소"가 아니라 "이 사용자에 대한 모든 저장소"를 의미했습니다.
vy32

98

Thirumalai가 말한 것처럼 복제 저장소 내부 및없이 --global. 즉,

  1. GIT_SSL_NO_VERIFY=true git clone https://url
  2. cd <directory-of-the-clone>
  3. git config http.sslVerify false

당신이 경우에 대한 좋은 솔루션could not lock global config file .gitconfig: Permission denied
antongorodezkiy

1
.gitconfig에 대한 권한이 거부 된 경우 시스템에 심각한 문제가 있습니다. $ HOME을 사용할 수 있어야합니다 (.gitconfig가 있어야하는 곳이 아닙니까?).
mcepl

이것은 실제로 내 서버가 아닙니다. 어쨌든 고맙습니다. 그리고 오류 메시지에서 경로를 제거했습니다. 실제로 해당 서버에서 git은 .gitconfig에 액세스하려고합니다./var/www/...
antongorodezkiy

이 답변에는 옵션에 대한 훌륭한 설명도 있습니다. stackoverflow.com/a/11622001
dragon788 2016 년

2
수출 GIT_SSL_NO_VERIFY = true
ETech

11

특히 재귀 복제가 필요한 경우

GIT_SSL_NO_VERIFY=true git clone --recursive https://github.com/xx/xx.git

10

Windows 컴퓨터에 있고 Git을 설치 한 경우 다음 단계를 시도 할 수 있습니다.

  1. Git 설치 폴더로 이동하십시오 (예 : C : \ Program Files (x86) \ Git \ etc).
  2. 파일을 편집하십시오 : gitconfig
  3. 세 이하 [HTTP] 섹션 줄을 추가 : sslVerify 거짓 =

    [http]
      sslVerify = false
    

1
이것은 또한 그가 다른 repos에 영향을주고 싶지 않다고 말하는 위의 질문에 부합하지 않습니다.
bryanmac

그리고 git 명령을 실행할 수 없을 때 정말 유용합니다! (ig는 Windows 가상 머신에 소스 트리를 가지고 내장 된소서 트리 터미널이 인식 할 수없는 UNC 경로에 src 폴더를 배치합니다!
danrah

1
thx, 이것은 효과가 있었지만 어떻게 든 명령 줄 수정이 작동하지 않았습니다.
Nrj

TortoiseGit 사용자의 경우 상황 별 설정 업데이트를 수행하고 로컬 만 편집하는 옵션을 선택하여이 섹션을 로컬 구성 파일로 편집 할 수 있습니다.
Steve Townsend

5

서버를 올바르게 처리하도록 GIT를 구성하는 쉬운 방법이 있습니다. git 서버에 특정 http 섹션을 추가하고 신뢰할 인증서 (Base64 인코딩)를 지정하십시오.

~ / .gitconfig

[http "https://repo.your-server.com"]
# windows path use double back slashes
#  sslCaInfo = C:\\Users\\<user>\\repo.your-server.com.cer
# unix path to certificate (Base64 encoded)
sslCaInfo = /home/<user>/repo.your-server.com.cer

이렇게하면 더 이상 SSL 오류가없고 (보통) 자체 서명 된 인증서의 유효성을 검사합니다. 이것이 중간자 공격으로부터 사용자를 보호하므로 가장 좋은 방법입니다. SSL 검증을 비활성화하면 이러한 종류의 공격에 취약합니다.

https://git-scm.com/docs/git-config#git-config-httplturlgt


5

여러 저장소를 호스팅하는 하나의 git 서버에 대해 SSL 검사를 비활성화 해야하는 경우 다음을 실행할 수 있습니다.

git config --bool --get-urlmatch http.sslverify https://my.bad.server false

(여전히 git <v1.8.5를 사용하는 경우 다음을 실행하십시오. git config --global http.https://my.bad.server.sslVerify false )

명령이 끝나는 문서 에서 설명 하는 .gitconfig내용은 다음과 같습니다.

[http "https://my.bad.server"]
        sslVerify = false

리포지토리에 관계없이이 서버에 대한 모든 인증서 검사는 무시합니다.

코드에 대한 설명도 있습니다.


4

이것은 나를 위해 작동합니다 :

git init
git config --global http.sslVerify false
git clone https://myurl/myrepo.git

2

이 질문은 계속 나오고 아직 만족스러운 결과를 찾지 못했기 때문에 여기에 효과가 있습니다 (이전 답변 https://stackoverflow.com/a/52706362/1806760 , 작동하지 않습니다).

내 서버 https://gitlab.dev에 자체 서명 된 인증서가 있습니다.

첫 방송 git config --system --edit(프롬프트 상승 된 명령의 변경 --system--global당신이 당신 사용자를 수행하려는 경우)를 선택한 다음, 이전 후 다음 코드 삽입 [http]섹션 :

[http "https://gitlab.dev"]
        sslVerify = false

그런 다음 모든 것이 올바르게되었는지 확인하십시오.

> git config --type=bool --get-urlmatch http.sslVerify https://gitlab.dev
false

1

Windows의 경우 전역 구성을 원하면 다음을 실행하십시오.

git config --global http.sslVerify false

OP가 specific repos명시 적으로 요청
malat

0

Linux의 경우 git repository 폴더에서 이것을 호출하면 :

git config http.sslVerify false

이것은 폴더 의 파일 섹션에 추가 sslVerify = false되며 다음 [http]을 사용하여 수동으로 추가하려는 경우 해결책이 될 수도 있습니다 .config.gitnano .git/config

...
[http]
  sslVerify = false
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.