AWS CodeCommit 는 더 이상 신규 고객이 사용할 수 없습니다. AWS CodeCommit 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자격 증명 도우미 및 HTTPS 연결 문제 해결 AWS CodeCommit
다음 정보는 AWS CLI 및 에 포함된 자격 증명 도우미를 사용하여 리포지토리에 연결할 때 발생하는 일반적인 문제를 해결하는 데 도움이 될 HTTPS 수 있습니다. CodeCommit
참고
페더레이션 액세스, ID 공급자 또는 임시 자격 증명을 CodeCommit 사용하여 연결할 때는 자격 증명 도우미가 지원되지만 유틸리티를 설치하여 사용하는 것이 좋습니다. git-remote-codecommit 자세한 내용은 HTTPS AWS CodeCommit 를 사용하여에 대한 git-remote-codecommit 연결 설정 단계 단원을 참조하십시오.
주제
- 보안 인증 도우미를 구성하는 git config 명령을 실행할 때 오류가 발생합니다.
- 리포지토리를 복제하려고 할 때 사용자 이름을 읽는 중 오류가 발생합니다.
- 보안 인증 도우미를 사용할 때 Windows에서 명령을 찾을 수 없음 오류가 발생합니다.
- 리포지토리에 연결할 때 사용자 이름을 입력하라는 메시지가 표시됩니다. CodeCommit
- macOS용 Git: 보안 인증 도우미를 성공적으로 구성했지만 현재 내 리포지토리에 액세스가 거부되었습니다(403).
- Windows용 Git: Windows용 Git을 설치했지만 내 리포지토리에 액세스가 거부되었습니다(403).
보안 인증 도우미를 구성하는 git config
명령을 실행할 때 오류가 발생합니다.
문제: git config 명령을 실행하여 CodeCommit 저장소와 통신하도록 자격 증명 도우미를 구성하려고 하면 인수가 너무 적다는 오류 또는 Git config 명령 및 구문을 제안하는 사용 프롬프트가 표시됩니다.
가능한 해결 방법: 이 오류가 발생하는 가장 일반적인 이유는 Windows 운영 체제의 명령어에 작은따옴표가 사용되거나 Linux, macOS, Unix 운영 체제의 명령어에 큰따옴표가 사용되기 때문입니다. 정확한 구문은 다음과 같습니다.
Windows:
git config --global credential.helper "!aws codecommit credential-helper $@"
Linux, macOS, Unix:
git config --global credential.helper '!aws codecommit credential-helper $@'
리포지토리를 복제하려고 할 때 사용자 이름을 읽는 중 오류가 발생합니다.
문제: 자격 증명 도우미를 사용하여 저장소를 복제하려고 하면 시스템에서 저장소의 사용자 이름을 읽을 수 없다는 오류 메시지가 표시됩니다. URL
가능한 해결 방법: 이 오류가 발생하는 가장 일반적인 이유는 컴퓨터에서.gitconfig 파일을 올바르게 만들거나 구성하지 않았기 때문입니다. .gitconfig 파일을 열고 자격 증명 도우미가 올바르게 설정되었는지 확인하십시오. Linux, macOS 또는 Unix를 실행하는 컴퓨터를 사용하는 경우 시스템의 값도 올바르게 $HOME
설정되어 있는지 확인하십시오.
보안 인증 도우미를 사용할 때 Windows에서 명령을 찾을 수 없음 오류가 발생합니다.
문제: 를 업데이트한 후 AWS CLI 저장소에 대한 자격 증명 도우미 연결이 실패합니다 CodeCommit . aws codecommit credential-helper $@ get: aws: command not
found
원인: 이 오류가 발생하는 가장 일반적인 이유는 AWS CLI 버전이 Python 3을 사용하는 버전으로 업데이트되었기 때문입니다. MSI패키지에 알려진 문제가 있습니다. 영향받는 버전 중 하나가 있는지 확인하려면, 명령줄을 열고 aws --version
명령을 실행합니다.
결과 Python 버전이 3으로 시작한다면, 영향을 받은 버전이 있는 것입니다. 예:
aws-cli/1.16.62 Python/3.6.2 Darwin/16.7.0 botocore/1.12.52
수정 방법: 다음 중 하나를 수해하여 이러한 문제를 해결할 수 있습니다.
-
대신 Python과 pip를 사용하여 AWS CLI 윈도우에 설치하고 구성합니다. MSI 자세한 내용은 AWS CLI 윈도우에 Python, pip, 및 를 설치하기 항목을 참조하십시오.
-
.gitconfig
파일을 수동으로 편집함으로써[credential]
섹션을 변경하여 로컬 컴퓨터에서aws.cmd
를 명시적으로 가리킵니다. 예:[credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true
-
git config명령을 실행하여 명시적으로
aws.cmd
참조하도록.gitconfig
파일을 업데이트하고 필요에 따라 명령 경로를 포함하도록 PATH 환경 변수를 수동으로 업데이트합니다. 예:git config --global credential.helper "!aws.cmd codecommit credential-helper $@" git config --global credential.UseHttpPath true
리포지토리에 연결할 때 사용자 이름을 입력하라는 메시지가 표시됩니다. CodeCommit
문제: 자격 증명 도우미를 사용하여 CodeCommit 저장소와 통신하려고 하면 사용자 이름을 입력하라는 메시지가 나타납니다.
가능한 해결 방법: AWS 프로필을 구성하거나 사용 중인 프로필이 작업용으로 구성한 프로필인지 확인하십시오. CodeCommit 설정에 대한 자세한 내용은 AWS CLI 보안 인증 도우미를 사용하여 Linux, macOS, Unix에서 AWS CodeCommit 리포지토리에 대한 HTTPS 연결을 설정하는 단계 또는 AWS CLI 보안 인증 도우미를 사용하여 Windows에서 AWS CodeCommit 리포지토리에 대한 HTTPS 연결 설정 단계 단원을 참조하세요. 액세스 키 및 비밀 키에 대한 IAM 자세한 내용은 IAM사용자의 액세스 키 관리 및 자격 증명을 얻으려면 어떻게 해야 합니까? 를 참조하십시오.
macOS용 Git: 보안 인증 도우미를 성공적으로 구성했지만 현재 내 리포지토리에 액세스가 거부되었습니다(403).
문제: macOS에서 보안 인증 도우미가 예상대로 보안 인증 정보를 사용 또는 액세스하지 않은 것 같습니다. 이는 다음과 같은 두 가지 문제로 인해 발생할 수 있습니다.
-
저장소가 있는 곳과 AWS 리전 다르게 구성되어 있습니다. AWS CLI
-
Keychain Access 유틸리티가 만료된 보안 인증 정보를 저장했습니다.
가능한 해결 방법: 올바른 지역에 맞게 AWS CLI 구성되었는지 확인하려면 aws configure 명령을 실행하고 표시된 정보를 검토하십시오. CodeCommit저장소가 에 표시된 AWS 리전 것과 다른 경우 aws configure 명령을 실행하고 값을 해당 지역에 적합한 값으로 변경해야 합니다. AWS CLI자세한 내용은 1단계: CodeCommit에 대한 초기 구성 단원을 참조하십시오.
OS X 및 macOS에 출시된 Git의 기본 버전은 Keychain Access 유틸리티를 사용하여 생성된 보안 인증 정보를 저장합니다. 보안상의 이유로 CodeCommit 리포지토리에 액세스하기 위해 생성된 비밀번호는 임시적이므로 키체인에 저장된 자격 증명은 약 15분 후에 작동을 멈춥니다. 를 통해서만 Git에 액세스하는 CodeCommit 경우 다음을 시도해 보세요.
-
터미널에서 git config 명령을 실행하여 Keychain Access 유틸리티가 정의된 Git 구성 파일(
gitconfig
)을 찾습니다. 로컬 시스템과 기본 설정에 따라서gitconfig
파일을 하나 이상 가질 수 있습니다.git config -l --show-origin | grep credential
이 명령의 출력에서 다음과 유사한 결과를 검색합니다.
file:/
path
/to
/gitconfig credential.helper=osxkeychain이 줄의 시작 부분에 나열된 파일이 편집 대상인 Git 구성 파일입니다.
-
Git 구성 파일을 편집하려면 평문 편집기를 사용하거나 다음 명령을 실행합니다.
nano /usr/local/git/etc/gitconfig
-
다음 전략 중 하나를 사용하여 구성을 수정합니다.
-
helper = osxkeychain
을 포함하는 보안 인증 정보 섹션을 주석 처리하거나 삭제합니다. 예:# helper = osxkeychain
-
컨텍스트가 포함되도록
aws credential helper
및osxkeychain
보안 인증 도우미를 모두 업데이트합니다. 예를 들어 다음을osxkeychain
인증하는 데 사용됩니다. GitHub[credential "https://git-codecommit.us-east-1.amazonaws\.com"] helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true [credential "https://github.com"] helper = osxkeychain
이 구성에서 Git은 원격 호스트가 ‘
https://github.com
’과 일치하면osxkeychain
도우미를 사용하고 원격 호스트가 ‘https://git-codecommit\.us-east-1\.amazonaws.com
’과 일치하면 보안 인증 도우미를 사용합니다. -
보안 인증 도우미 앞에 빈 문자열 도우미를 포함시킵니다. 예를 들어 이름이 지정된 프로필을 사용할 때
osxkeychain
도우미를 사용하지 않으려면CodeCommitProfile
다음과 CLI 함께:[credential] helper = helper = !aws --profile
CodeCommitProfile
codecommit credential-helper $@ UseHttpPath = true작은 정보
모든 프로필을 제외하려는 CodeCommit 경우 빈 문자열 도우미 줄 뒤에 오는 줄이 일치하지 않도록 구성할 수도 있습니다.
helper = !aws codecommit credential-helper $@
Keychain Access 유틸리티를 계속 이용해 다른 Git 리포지토리의 보안 인증 정보를 캐시하고 싶다면, 명령줄을 코멘트 아웃하는 대신 헤더를 수정해야 합니다. 예를 들어 캐시된 자격 증명을 허용하려면 다음과 같이 헤더를 수정할 수 있습니다. GitHub
[credential "https://github.com"] helper = osxkeychain
-
Git으로 다른 리포지토리에 액세스하는 경우 리포지토리에 대한 자격 증명을 제공하지 않도록 Keychain Access 유틸리티를 구성할 수 있습니다. CodeCommit Keychain Access 유틸리티를 구성하려면 다음을 수행합니다.
-
Keychain Access 유틸리티를 실행합니다. (Finder를 사용하여 이 유틸리티를 찾을 수 있습니다.)
-
검색 및 바꾸기
git-codecommit.
us-east-2
.amazonaws.com.rproxy.goskope.comus-east-2
리포지토리가 AWS 리전 있는 곳으로. 행을 강조 표시하고 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 연 다음 정보 가져오기를 선택합니다. -
액세스 제어 탭을 선택합니다.
-
액세스 허용 전 확인에서
git-credential-osxkeychain
을 선택한 후 마이너스 기호를 선택하여 목록에서 제거합니다.참고
목록에서
git-credential-osxkeychain
을 제거하면 Git 명령을 실행할 때마다 대화 상자가 나타납니다. 거부를 선택하여 계속 진행합니다. 팝업이 너무 많이 나타나는 경우 다음과 같이 몇 가지 대체 옵션이 있습니다.-
CodeCommit 를 사용하여 자격 증명 도우미 대신 사용자 SSH 또는 Git 자격 증명에 연결하십시오. HTTPS 자세한 내용은 Linux, macOS, Unix에서 SSH 연결 및 Git 보안 인증 정보를 사용하는 HTTPS 사용자를 위한 설정 단원을 참조하세요.
-
Keychain Access 유틸리티 내,
git-codecommit.us-east-2.amazonaws.com
에 대한 액세스 제어 탭에서 모든 애플리케이션이 이 항목에 액세스하도록 허용(이 항목에 대한 액세스는 제한되지 않음) 옵션을 선택합니다. 이렇게 하면 팝업이 표시되지 않지만 자격 증명은 결국 만료되며(평균 약 15분 소요) 그 다음에는 403 오류 메시지가 표시됩니다. 이 경우 기능을 복원하려면 키체인 항목을 삭제해야 합니다. -
키 체인을 사용하도록 기본 설정되어 있지 않은 Git 버전을 설치합니다.
-
Keychain 항목을 삭제하기 위한 스크립팅 솔루션을 고려합니다. 커뮤니티에서 생성한 스크립트 솔루션의 샘플을 열람하려면, 제품 및 서비스 통합 섹션에서 OS X 인증서 저장소에 있는 캐시된 보안 인증 정보를 주기적으로 삭제하는 Mac OS X 스크립트를 참조하세요.
-
Git이 Keychain Access 유틸리티를 아예 사용하지 못하도록 하려면 보안 인증 도우미로 'osxkeychain'을 사용하지 않도록 Git을 구성할 수 있습니다. 예를 들어 터미널을 열고 git config --system credential.helper
명령을 실행해 osxkeychain
이 반환되면 Keychain Access 유틸리티를 사용하도록 Git가 설정됩니다. 다음 명령을 실행하여 이를 변경할 수 있습니다.
git config --system --unset credential.helper
이 명령을 --system
옵션과 함께 실행하면 시스템 전체에 걸쳐 모든 사용자의 Git 동작이 변경되므로 다른 사용자나 다른 리포지토리 서비스를 추가로 사용하는 경우 다른 리포지토리에 의도하지 않은 결과가 발생할 수 있습니다. CodeCommit 또한 이 방법은 sudo
사용이 필요할 수 있으며, 이 변경을 적용하기에 충분한 권한이 계정에 없을 수 있다는 점에 유의하세요. git config --system credential.helper
명령을 다시 실행하여 명령이 성공적으로 적용되었는지 확인하십시오. 자세한 내용은 Git 사용자 지정 - Git 구성
Windows용 Git: Windows용 Git을 설치했지만 내 리포지토리에 액세스가 거부되었습니다(403).
문제: Windows에서 보안 인증 도우미가 필요한 보안 인증 정보를 사용 또는 액세스하지 않은 것 같습니다. 이는 다음과 같은 다른 문제로 인해 발생할 수 있습니다.
-
AWS CLI 는 리포지토리가 있는 AWS 리전 리포지토리와 다르게 구성되어 있습니다.
-
Windows용 Git은 기본적으로 자격 증명 도우미를 사용하는 CodeCommit 연결과 호환되지 않는 Git 자격 증명 관리자 유틸리티를 설치합니다. AWS 설치 시 자격 증명 도우미를 와 함께 설치하고 연결하도록 구성했는데도 저장소에 대한 연결이 실패합니다. AWS CLI CodeCommit
-
Windows용 Git의 일부 버전은 RFC2617
및 RFC4559를 완전히 준수하지 않을 수 있으며, 이로 인해 Git 자격 증명과 에 포함된 자격 증명 도우미 모두에 문제가 발생할 수 있습니다. AWS CLI자세한 내용은 Version 2.11.0(3) does not ask for username/password 를 참조하세요.
수정 방법:
-
에 포함된 자격 증명 도우미를 사용하려는 경우 자격 증명 도우미를 사용하는 HTTPS 대신 Git 자격 증명을 사용하여 연결하는 것이 좋습니다. AWS CLI IAM사용자를 위해 구성된 Git 자격 증명은 Windows용 Git 자격 증명 관리자와 호환되지만 의 자격 증명 도우미와는 다릅니다. AWS CodeCommit자세한 내용은 Git 보안 인증 정보를 사용하는 HTTPS 사용자의 경우 단원을 참조하십시오.
자격 증명 도우미를 사용하려면 aws configure 명령을 실행하고 표시된 정보를 검토하여 자격 증명 도우미가 올바르게 AWS CLI AWS 리전구성되었는지 확인하십시오. 에 표시된 CodeCommit 저장소와 AWS 리전 다른 저장소에 있는 경우 aws configure 명령을 실행하고 값을 해당 지역에 적합한 값으로 변경해야 합니다. AWS CLI자세한 내용은 1단계: CodeCommit에 대한 초기 구성 단원을 참조하십시오.
-
가능한 경우 Windows용 Git을 제거하고 다시 설치합니다. Windows용 Git을 설치할 때 Git Credential Manager 유틸리티 설치 옵션의 확인란 선택을 취소합니다. 이 보안 인증 정보 관리자는 AWS CodeCommit의 보안 인증 도우미와 호환되지 않습니다. Git Credential Manager 또는 다른 자격 증명 관리 유틸리티를 설치했지만 제거하지 않으려면
.gitconfig
파일을 수정하고 다음에 대한 자격 증명 관리를 추가할 수 있습니다. CodeCommit-
제어판을 열고 자격 증명 관리자를 선택한 다음 에 대해 저장된 자격 증명을 제거합니다. CodeCommit
-
메모장과 같은 평문 편집기에서
.gitconfig
파일을 엽니다.참고
여러 Git 프로필을 사용하는 경우 로컬 및 글로벌
.gitconfig
파일을 둘 다 가질 수 있습니다. 적합한 파일을 편집해야 합니다. -
다음 섹션을
.gitconfig
파일에 추가합니다.[credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
-
파일을 저장한 다음 새 명령줄 세션을 연 후 연결을 다시 시도합니다.
리포지토리에 연결할 때는 자격 증명 도우미를 사용하고 리포지토리와 같은 호스팅된 다른 CodeCommit 리포지토리에 연결할 AWS CodeCommit 때는 다른 자격 증명 관리 시스템을 사용하려는 경우에도 이 방법을 사용할 수 있습니다. GitHub
보안 인증 도우미가 기본값으로 사용되도록 재설정하려면 git config 명령을 실행할 때 --global 또는 --local 대신 --system 옵션을 사용할 수 있습니다.
-
-
Windows 컴퓨터에서 Git 자격 증명을 사용하는 경우 Git 자격 증명 사용자 이름을 연결 문자열의 일부로 포함하여 규정 RFC 미준수 문제를 해결할 수 있습니다. 예를 들어, 이 문제를 해결하고 이름이 지정된 저장소를 복제하려면
MyDemoRepo
미국 동부 (오하이오) 지역:git clone https://
Your-Git-Credential-Username
@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
my-demo-repo참고
Git 보안 인증 정보 사용자 이름에
@
문자가 있는 경우, 이 방법은 효과가 없습니다. 문자를 URL -인코딩 (URL이스케이프 또는 퍼센트인코딩이라고도 함) 해야 합니다.