programing

Giton 비트 버킷:공용 SSH 키를 업로드한 후에도 항상 암호를 요청함

muds 2023. 6. 30. 22:39
반응형

Giton 비트 버킷:공용 SSH 키를 업로드한 후에도 항상 암호를 요청함

는 제 ㅠㅠㅠㅠ을 했습니다.~/.ssh/id_rsa.pub설명한 대로 비트버킷의 SSH 키에 연결하지만 Git는 여전히 모든 작업에서 내 암호를 요청합니다(예:git pull제가 뭔가를 놓쳤나요?

개인 저장소(다른 사람의 개인 저장소 포크)이며 다음과 같이 복제했습니다.

git clone git@bitbucket.org:Nicolas_Raoul/therepo.git

여기가 제 지역입니다..git/config:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = https://Nicolas_Raoul@bitbucket.org/Nicolas_Raoul/therepo.git
[branch "master"]
        remote = origin
        merge = refs/heads/master

동일한 공개 키를 가진 동일한 환경에서 Giton Github은 정상적으로 작동합니다.
.ssh이라rwx------,.ssh/id_rsa이라-rw-------,.ssh/id_rsa.pub이라-rw-r--r--

sshurl을 사용하여 복제한 것이 확실합니까?

은 원지은 URL다음같니다로 되어 .url = https://Nicolas_Raoul@bitbucket.org/Nicolas_Raoul/therepo.git그래서 만약 그것이 https를 사용하고 있다면, 그것은 당신의 ssh 키에 상관없이 비밀번호를 요구할 것입니다.

따라서 다음과 같은 작업을 수행할 수 있습니다.

현재 레포에서 구성 파일을 엽니다.

vim .git/config

그리고 URL로 행을 변경합니다.

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = https://Nicolas_Raoul@bitbucket.org/Nicolas_Raoul/therepo.git

로.

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@bitbucket.org:Nicolas_Raoul/therepo.git

여기에서 설명한 것처럼 SSH URL로 복제하는 경우, 푸시/풀할 때마다 사용자 이름/암호를 입력할 필요가 없습니다.@manojlds의 위 답변 확인

그러나 HTTPS로 복제하고 매번 사용자 이름/암호를 입력하지 않으려면 다음 명령을 사용하여 자격 증명을 캐시에 저장할 수 있습니다.

git config --global credential.helper 'cache --timeout 3600'

여기서 3600(초)는 1시간을 의미하며, 요구 사항에 따라 변경할 수 있습니다.

위에서 이미 답변했습니다.위에서 확인할 단계를 요약하겠습니다.

려달을 git remote -v프로젝트 dir에서.이 " url"로하는 경우https://abc그러면 매번 사용자 이름 암호가 필요할 수 있습니다.

원격 URL 실행을 변경하려면 다음과 같이 하십시오.git remote set-url origin {ssh remote url address starts with mostly git@bitbucket.org:}.

지금실을 실행합니다.git remote -v변경된 원격 URL을 확인합니다.

참조: https://help.github.com/articles/changing-a-remote-s-url/

안녕하세요, 미래의 구글 사람들.

MacOS >= High Sierra에서는 SSH 키가 이상 KeyChain에 저장되지 않습니다.

용사를 합니다.ssh-add -K더 이상 재시작할 수 없습니다.

여기 세 가지 가능한 해결책이 있습니다.

저는 첫 번째 방법을 성공적으로 사용했습니다.다과같은파만다니라는 .config안에~/.ssh:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

Ubuntu 시스템을 사용하는 경우 다음을 사용하여 암호를 영구적으로 저장합니다.

git config --global credential.helper store

HTTP 요청의 경우 암호가 포함된 자격 증명을 다음 URL에 직접 붙여넣을 수도 있습니다.

http://username:password@bitbucket.org/...

이렇게 하면 매번 자격 증명을 제공하는 수고를 덜 수 있습니다..git/config(URL)를 수정하기만 하면 됩니다.

이 답변들 중 어떤 것도 저에게 도움이 되지 않았고, 제 문제가 약간 다르다는 것이 밝혀졌습니다.키를 보내기 전에 매번 나의 비밀번호를 묻는 것은 ssh였습니다.그래서 제가 해야 할 일은 다음 명령으로 제 암호를 연결하는 것이었습니다.

ssh-add -K ~/.ssh/id_rsa

그러면 암호를 입력하라는 메시지가 표시되고 암호를 저장합니다.매번 암호를 입력하라는 메시지가 표시되는 경우 이 방법을 사용할 수 있습니다.

'/Users//.ssh/id_rsa' 키의 암호를 입력하십시오.

자세한 내용은 여기에 있습니다.

참고: 나는 이것을 맥 머신에서 성공적으로 사용했지만, @Rob Kwasowski가 아래에서 지적했듯이, 대문자K옵션은 mac에 고유합니다.에는 소문자 Mac을 .k(아마도 Mac에서도 작동하지만 테스트하지는 않았습니다.)

다음은 iTerm/Terminal을 통해 비트 버킷에 대한 명령줄 액세스를 가정한 것입니다.

MacOS Sierra 10.12.5의 경우, 내 시스템은 비트 버킷에 대한 각 연결에 대해 내 SSH 암호를 요청하는 동일한 문제를 나타냈습니다.

이 문제는 여기 기술 노트 TN2449에 설명된 macOS 10.12.2의 OpenSSH 업데이트와 관련이 있습니다.

솔루션을 사용자 지정하고 싶을 수도 있지만 ~/.ssh/config 파일에 추가하면 다음이 작동합니다.

Host *
    UseKeychain yes

ssh 구성에 대한 자세한 내용은 ssh_config에 대한 man 페이지를 참조하십시오.

% man ssh_config

또 하나: 여기 슈퍼 유저에 대한 좋은 글이 있습니다. 이 문제와 당신의 필요와 설정에 따라 다양한 해결책을 논의합니다.

SSH URL 대신 HTTPS URL로 저장소를 복제하여 Bash Shell에서 암호를 요청하던 SSH 키를 추가한 후에도.

방금 편집했습니다../.git/config을 했습니다.url단순히 교체함으로써 변수가 됩니다.https://ssh://

예.

[core]
        ...
        ...
        ...
[remote "origin"]
        url = https://<username>@bitbucket.org/<username>/<repository_name>.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        ...
        ...
        ...

변경된 항목:

[core]
        ...
        ...
        ...
[remote "origin"]
        url = ssh://<username>@bitbucket.org/<username>/<repository_name>.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        ...
        ...
        ...

SSH ID 파일을 다시 확인해야 할 수도 있습니다.BitBucket에 저장한 동일한 공개 키에 대해 다른/잘못된 개인 키를 보도록 BitBucket을 안내할 수 있습니다.

으로확다니로 .tail ~/.ssh/config다음과 유사한 내용이 표시됩니다.

Host bitbucket.org
 HostName bitbucket.org
 IdentityFile ~/.ssh/personal-bitbucket-ssh-key

추가 신원(예: 직장 및 가정)을 추가하는 것은 다음을 통해 수행될 수 있습니다.ssh-add명령, 예:

ssh-keygen -t rsa -C "companyName" -f "companyName"
ssh-add ~/.ssh/companyName

로컬에서 검색 중인 개인 키를 확인했으면 다음과 같은 공용 키를 가져올 수 있습니다.

cat ~/.ssh/personal-bitbucket-ssh-key.pub | pbcopy

그리고 그 암호를 비트 버킷에 붙여넣습니다.이제 장치가 친숙한 것으로 인식되기 때문에 (앞에서 언급한 답변에서 지적한 SSH 클론을 사용하는 경우) 암호 없이 Git 푸시가 허용됩니다.

이것이 누군가를 위해 그것을 해결하는 데 도움이 되기를 바랍니다.

실제로 이러한 답변 중 Git를 사용한 현재 기술 상태를 반영하는 답변은 없습니다( 답변 작성 시점 기준 v2.29).최신 버전의 Git에서는cache,winstore,wincred사용되지 않습니다.


HTTPS를 통해 비트버킷 저장소를 복제하려면 다음과 같이 하십시오.

git clone https://Kutlime@bitbucket.org/SomeOrganization/SomeRepo.git

다음 작업을 수행해야 합니다.

  1. 비트 버킷 사용자 관리에서 앱 암호를 생성합니다.
  2. 에서 자격 증명 방법 설정.gitconfig그에 따라(글로벌 또는 로컬)
[credential]
    helper = manager

다음을 찾을 수 있습니다..gitconfig이 명령을 실행합니다.

git config --list --show-origin
  1. 실행
git clone https://Kutlime@bitbucket.org/SomeOrganization/SomeRepo.git

로그온 창이 나타날 때까지 기다립니다.URL의 사용자 이름(의 경우 kutlime)과 생성된 앱 암호를 암호로 사용합니다.

만약 당신이 여전히too many authentication failures오류:

nano ~/.ssh/config

붙여넣기:

Host bitbucket_james
    HostName bitbucket.org
    User james
    Port 22
    IdentitiesOnly=yes
    IdentityFile=~/.ssh/id_rsa_bitbucket_james

그리고 가장 중요한 것은 - 당신은 그래야 합니다.bitbucket_james대신 별칭bitbucket.org원격 URL을 설정하는 경우:

git remote set-url origin git@bitbucket_james:repo_owner_user/repo_name.git

여기서 키워드는 https://' 대신 'ssh://' 입니다 :-)

.git/config에서

조심하세요!리포지토리를 복제한 경우에는 공용 키를 BitBucket에 추가하여 작동하도록 만든 후 리포지토리를 다시 복제할 수 있습니다.이것은 아마도 당신의 구성 파일을 해킹하는 것보다 더 깨끗할 것입니다 ;-)

저와 함께 'git clon ssh://git@stash.xxx.com :7999/projName/projA.git'을 실행했지만 여전히 복제한 이 새 저장소에 대한 암호를 입력하라는 메시지가 표시되었기 때문에 해당 .git/config 파일을 작동하는 다른 저장소와 비교함으로써 해당 파일이 [remote "mote" 섹션 아래에 있는 URL인 것으로 밝혀졌고, 새 저장소의 위에 있는 ssh 경로로 설정되었습니다.하지만 작동 중인 것에 대해 https:xxx로 설정되었습니다.

로그인하는 것과 관련하여 다른 이상한 점이 있었습니다.저는 완전히 바보처럼 보이지만 제 경우에는 효과가 있는 것을 발견했습니다.MacOS의 키 체인으로 이동하기만 하면 됩니다.사이드바에서 로그인 잠금 아이콘을 찾습니다.로그아웃하려면 클릭하고 로그인하려면 클릭합니다.바보같이 들리지만 그것은 내 문제를 해결했습니다.시도해 볼 만합니다.

이메일이 아닌 사용자 이름으로 로그인했더니 작동하기 시작했습니다.

언급URL : https://stackoverflow.com/questions/8600652/git-on-bitbucket-always-asked-for-password-even-after-uploading-my-public-ssh

반응형