git clone에 ssh 옵션 전달 중
도망치려고 합니다.git clone
SSH가 리포지토리 호스트의 키를 확인하지 않고 있습니다.SSH에서 그렇게 할 수 있습니다.
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
git clone 명령에 동일한 ssh 옵션을 전달할 수 있는 방법이 있습니까?
편집: 수정할 수 없는 제한이 있습니다.~/.ssh/config
또는 해당 컴퓨터의 다른 파일.
최근 릴리스된 Git 2.3은 매개 변수가 있는 명령을 정의하는 데 사용할 수 있는 새로운 변수 "GIT_SSH_COMMAND"를 지원합니다.
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host
$GIT_SSH_COMMAND
보다 우선함$GIT_SSH
셸에 의해 해석되므로 추가 인수를 포함할 수 있습니다.
에 추가합니다.~/.ssh/config
:
Host host
HostName host
User user
SshOption1 Value1
SshOption2 Value2
그Host
항목은 명령줄에서 지정할 항목이며,HostName
는 실제 호스트 이름입니다.그들은 같을 수도 있고, 아니면.Host
항목은 별칭이 될 수 있습니다.User
항목은 지정하지 않은 경우 사용됩니다.user@
명령행에서.
명령줄에서 이 설정을 구성해야 하는 경우GIT_SSH
옵션이 포함된 스크립트를 가리키는 환경 변수입니다.
다른 키를 지정하는 다른 옵션은 다음과 같습니다.git config core.sshCommand
git 2.10 + (2016년 3분기)와 함께.
이는 Boris의 답변에 설명된 환경 변수에 대한 대안입니다.)
Nguyễn Thai Ngọc Duy()pclouds
의 커밋 3c8ede3(2016년 6월 26일) 참조.
(주니오 C 하마노에 의해 합병 -- -- 2016년 7월 19일 커밋 dc21164에서)
새 구성 변수
core.sshCommand
저장소별로 사용할 GIT_SSH_COMMAND의 값을 지정하기 위해 추가되었습니다.와 유사한
$GIT_ASKPASS
또는$GIT_PROXY_COMMAND
우리는 또한 구성 파일에서 먼저 읽은 후 다시 아래로 이동합니다.$GIT_SSH_COMMAND
.동일한 호스트(예: github)를 대상으로 하는 다른 개인 키를 선택하는 데 유용합니다.
core.sshCommand:
이 변수가 설정되면,
git fetch
그리고.git push
대신 지정된 명령을 사용합니다.ssh
원격 시스템에 연결해야 하는 경우.
명령의 형식은 다음과 같습니다.GIT_SSH_COMMAND
환경 변수가 설정되면 재정의됩니다.
그것은 의미합니다.git clone
다음이 될 수 있습니다.
cd /path/to/my/repo
git config core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
# later on
git clone host:repo.git
사용자 1300959가 설명에 추가한 것처럼 모든 리포지토리에 이를 적용하려면 글로벌 구성을 사용합니다.
git config --global core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
시스템 수준 설정에 영향을 미치지 않는 리포지토리 수준 구성
이미 사용 가능한 답변을 통합하여 아래 단계를 선택합니다.이렇게 하면 시스템 수준에서 구성 변경이 영향을 미치지 않고 작업 중인 리포지토리에만 영향을 줍니다.공유 Bamboo 에이전트에서 스크립트를 실행해야 하기 때문에 이 작업이 필요합니다.
합니다. 1. 저장소를 복제합니다.GIT_SSH_COMMAND
접근.
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone ssh://url
2.복제가 완료되면 리포지토리 디렉토리로 이동합니다.
cd repo-dir
3.트세core.sshCommand
모든 향후 통화를 일반적인 git 명령으로 실행할 수 있지만 내부적으로 제공된 git 옵션을 사용할 수 있도록 구성합니다.
git config core.sshCommand 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
다음은 GIT_SSH 변수를 사용하여 ssh 인수를 전달하는 까다로운 예입니다.
$ echo 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $*' > ssh
$ chmod +x ssh
$ GIT_TRACE=1 GIT_SSH="$PWD/ssh" git clone user@host
참고: 위의 줄은 터미널에 붙여넣어야 하는 터미널 명령줄입니다.파일 ssh를 생성하고 실행 파일로 만들고 실행합니다.
개인 키 옵션을 전달하려면 사용할 개인 키를 지정하는 방법을 선택하십시오.
가 >= >= 2.3 버전을 사용한다고 합니다.GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host
베팅 옵션이지만, 가능하지 않으면 @http-lee가 좋은 옵션을 제공했지만, ssh 구성 파일을 식별하는 답변을 업데이트하십시오.
Host host
HostName host
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
더 안전한 방법은 다음과 같습니다.
git config --global core.sshCommand 'ssh -o StrictHostKeyChecking=accept-new'
은 것은보안다니합전다이다보다 안전합니다.StrictHostKeyChecking=no
accept-new
이전에 한 번도 본 적이 없는 키가 아닌 변경된 것으로 알고 있는 키에 대한 오류가 계속 발생합니다.no
모든 검사를 비활성화합니다.
일회성 명령의 경우 다음을 사용합니다.
git -c core.sshCommand='ssh -o StrictHostKeyChecking=accept-new' clone ...
이 문제는 Window machine에서 다음 단계를 수행하여 해결되었습니다.
C: 아래에 구성 파일 생성:\Users\username.ssh 폴더.
구성 파일에 다음 행을 추가합니다.
host <HOST> hostname <HOSTNAME> user <USER_NAME> IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes port <PORT_NUMBER> KexAlgorithms +diffie-hellman-group1-sha1
다시 시도합니다.
언급URL : https://stackoverflow.com/questions/7772190/passing-ssh-options-to-git-clone
'itsource' 카테고리의 다른 글
os.path.abspath와 os.path.realpath를 모두 사용하는 이유는 무엇입니까? (0) | 2023.08.20 |
---|---|
파이썬 요청에서 쿠키를 사용하려면 어떻게 해야 합니까? (0) | 2023.08.20 |
디지털 오션에서 헤로쿠로 마이그레이션 (0) | 2023.08.20 |
Ajax 호출을 사용한 PHP Excel 다운로드 (0) | 2023.08.20 |
Angular2 - 구성 요소 로드에 텍스트 상자 초점 맞추기 (0) | 2023.08.20 |