sourcetip

git pull 비밀번호로 명령어를 입력하는 방법은?

fileupload 2023. 4. 18. 23:16
반응형

git pull 비밀번호로 명령어를 입력하는 방법은?

다음 명령어를 한 줄로 수행합니다.

git pull && [my passphrase]

어떻게 하는 거야?

이것은 요청하신 것과 완전히 다릅니다만, http의 경우는 다음과 같습니다.

  • 패스워드는 .netrc 파일에 넣을 수 있습니다(Windows의 경우 _netrc).거기서부터 자동으로 픽업됩니다.600개의 권한을 가진 홈 폴더로 이동합니다.
  • 레포(repo)를 복제하여https://user:pass@domain/repo하지만 사용자/패스 정보가 여러 곳에 표시되므로 권장하지 않습니다.
  • 새로운 옵션은 credential 도우미를 사용하는 것입니다.credential은 표준 credential 도우미를 사용하여 로컬Configuration에 클리어 텍스트로 저장됩니다.wincred가 있는 credential-helper도 윈도 상에서 사용할 수 있습니다.

credential 도우미의 사용 예

  • git config credential.helper store- 자격 증명을 무기한 저장합니다.
  • git config credential.helper 'cache --timeout=3600'- 60분 동안 보관

ssh 기반 액세스의 경우 필요에 따라 ssh 키를 제공하는 ssh 에이전트를 사용합니다.이를 수행하려면 컴퓨터에서 키를 생성하고 원격 서버에 공용 키를 저장한 후 관련 키 저장소에 개인 키를 추가해야 합니다.

명령줄에서 https 연결을 위한 자격 증명을 제공하는 방법을 찾았습니다.git 풀의 완전한 URL을 지정하고, 거기에 credential을 포함하면 됩니다.

git pull https://username:password@mygithost.com/my/repository

이전에 자격 증명을 사용하여 저장소를 복제할 필요가 없습니다. 즉, 자격 증명은 다음과 같습니다..git/config(단, 셸이 사용자를 배신하지 않도록 하고 명령줄을 이력 파일에 저장하십시오.)

패스워드에 @ 가 없는 경우는, 다음의 cmd 가 동작합니다.git pull https://username:pass@word@mygithost.com/my/repository패스워드에 @ 가 설정되어 있는 경우는, 아래와 같이 %40 으로 치환해 주세요.git pull https://username:pass%40word@mygithost.com/my/repository

credentials helper 명령줄 옵션 사용:

git -c credential.helper='!f() { echo "password=mysecretpassword"; }; f' fetch origin

Gitlab 액세스 토큰을 사용하게 되었기 때문에 Github 액세스 토큰을 필요로 하는 사람도 있을 수 있지만, 이 질문에 대한 답변을 제공했습니다.

SSH를 사용하고 싶은데, 그것을 막는 gitlab 버그가 있습니다.비밀번호를 .netrc 또는 URL에 입력하는 것은 이상적이지 않습니다.credential 매니저는 서버를 재부팅할 때 재시작해야 합니다.이것은 이상적이지 않습니다.

따라서 다음과 같이 사용할 수 있는 액세스 토큰을 선택했습니다.git clone https://<username>:<accessToken>@gitlab.com/ownerName/projectName.git

액세스 토큰은 URL과 함께 저장되므로 안전하지 않지만 username: password를 사용하는 것보다 안전합니다.접근 토큰은 특정 조작으로 제한될 수 있으며 쉽게 해지될 수 있기 때문입니다.

일단 복제되면(또는 URL이 수동으로 업데이트되면), 모든 git 요청은 URL에 저장되므로 액세스 토큰을 사용합니다.

다음 명령어는 이미 복제한 repo를 갱신하는 경우에 도움이 될 수 있습니다.

git remote show origin

git remote remove origin

git remote add origin https://<username>:<accessToken>@gitlab.com/ownerName/projectName.git

편집: 아래의 코멘트를 확인해 주세요.나는 2개의 중요한 메모를 추가했다.

Google & stackoverflow를 검색해도 질문에 대한 답을 찾지 못했기 때문에, 여기서 해결책을 공유하겠습니다.

git config --global credential.helper "/bin/bash /git_creds.sh"
echo '#!/bin/bash' > /git_creds.sh
echo "sleep 1" >> /git_creds.sh
echo "echo username=$SERVICE_USER" >> /git_creds.sh
echo "echo password=$SERVICE_PASS" >> /git_creds.sh

# to test it
git clone https://my-scm-provider.com/project.git

저도 Windows를 위해서 했어요.풀답변은 이쪽

Git 2.5+(2014년 2분기)에서는 Git credential helper가 암호화되지 않은 비밀번호 변경을 저장하는 방법에 유의하십시오.
Junio C Hamano (gitster )의 commit 17c7f4d 참조

credential-xdg

플플샘"" twe 。storeXDG 컨피규레이션파일 로케이션을 지정했을 경우에 대응하는 credential 도우미의 백엔드.

이제 의사가 말합니다.

지정되지 않은 경우:

  • 됩니다.~/.git-credentials ★★★★★★★★★★★★★★★★★」$XDG_CONFIG_HOME/git/credentials , , , , 입니다.
  • ~/.git-credentials, 「」를 참조해 주세요.$XDG_CONFIG_HOME/git/credentials★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

GitlabGitlab)의(Gitlab)로 는, 「Gitlab」CI/CD」를 참조해 .gitlab-ci.yml)ㄹ 수 .

git pull $CI_REPOSITORY_URL

다음과 같은 결과가 됩니다.

git pull https://gitlab-ci-token:[MASKED]@gitlab.com/gitlab-examples/ci-debug-trace.gi

또한 사용하는 토큰은 임시/작업별 토큰이므로 이 방법을 사용하면 보안 취약점이 크게 줄어듭니다.

간단하게 다음과 같이 할 수 있습니다.

eval $(ssh-agent -s)

echo "password" | ssh-add ~/.ssh/id_rsa

git pull origin master

언급URL : https://stackoverflow.com/questions/11506124/how-to-enter-command-with-password-for-git-pull

반응형