{"meta":{"title":"리포지토리에 대한 인증 문제 해결","intro":"codespace의 리포지토리를 복제, 푸시 또는 끌어올 때 일반적인 인증 문제를 해결하는 방법을 알아봅니다.","product":"Codespaces","breadcrumbs":[{"href":"/ko/codespaces","title":"Codespaces"},{"href":"/ko/codespaces/troubleshooting","title":"문제 해결"},{"href":"/ko/codespaces/troubleshooting/troubleshooting-authentication-to-a-repository","title":"리포지토리에 인증"}],"documentType":"article"},"body":"# 리포지토리에 대한 인증 문제 해결\n\ncodespace의 리포지토리를 복제, 푸시 또는 끌어올 때 일반적인 인증 문제를 해결하는 방법을 알아봅니다.\n\n리포지토리에 대한 codespace를 만들 때 일반적으로 `git pull`과 `git push`를 사용하여 추가 인증 없이 해당 리포지토리에 변경사항을 끌어다 놓을 수 있습니다. 그러나 경우에 따라 이러한 작업을 실행하려고 할 때 인증 오류가 표시 될 수 있습니다.\n\ncodespace를 만든 리포지토리가 아닌 다른 리포지토리와 상호 작용하려는 경우에도 오류가 발생할 수 있습니다.\n\n## codespace를 생성한 리포지토리에 인증하기\n\ncodespace를 만든 리포지토리로 푸시하거나 끌어오려고 하지만 인증이 실패하는 경우 `git@github.com: Permission denied (publickey)` 또는 `Host key verification failed`와 같은 오류가 표시 될 수 있습니다.\n\nGitHub Codespaces와 함께 dot 파일 리포지토리를 사용하고 데이터를 원격 리포지토리 전송하기 위해 HTTPS 이외의 프로토콜을 사용하도록 Git을 구성한 경우 이러한 오류가 표시될 수 있습니다. 예를 들어 dotfiles의 구성 파일에 다음과 같은 줄을 포함하여 SSH를 사용하도록 Git을 구성했을 수 있습니다.\n\n```shell\n[url \"git@github.com:\"]\n  insteadOf = https://github.com/\n```\n\nGitHub Codespaces은(는) 기본적으로 HTTPS 프로토콜을 사용하며 , codespace를 만든 리포지토리에 대한 읽기 및 쓰기 권한으로 구성된 `GITHUB_TOKEN`로 인증합니다. codespace에서 기본 HTTPS 및 `GITHUB_TOKEN`을 사용하는 것이 좋습니다.\n`GITHUB_TOKEN`의 권한은 일반적으로 최소 권한의 보안 원칙에 따라 하나의 리포지토리로 제한됩니다. SSH 인증에는 세분화된 리포지토리 권한이 없으므로 실수로 SSH 키를 노출하면 다른 사용자가 모든 리포지토리에 액세스할 수 있습니다.\n\n기본 HTTPS를 사용하려면 dot 파일에서 충돌하는 구성을 제거합니다. dot 파일 리포지토리에 `install.sh`과 같은 인식된 파일에 설치 스크립트가 포함된 경우 다음과 같은 논리를 사용하여 codespace에서 구성을 제외할 수 있습니다.\n\n```shell\nif [ -z \"$CODESPACES\" ]; then\n  git config --global url.\"git@github.com\".insteadOf \"https://github.com\"\nfi\n```\n\n신뢰할 수 있는 리포지토리에서 만든 codespace에서 SSH를 사용해야 하는 경우 GitHub 계정에 연결된 SSH 키로 인증하도록 codespace가 설정되어 있는지 확인합니다. 자세한 내용은 [새 SSH 키 생성 및 ssh-agent에 추가](/ko/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)을(를) 참조하세요.\n\n## Codespace를 생성하지 않은 리포지토리에 인증하기\n\ncodespace의 `GITHUB_TOKEN`은 codespace를 만든 리포지토리에 대한 읽기 및 쓰기 액세스 권한으로 구성됩니다. 기본적으로 토큰은 다른 리포지토리에 액세스할 수 없습니다. 리포지토리를 복제할 수 없거나 복제한 리포지토리로 푸시할 수 없습니다.\n\ncodespace에서 `GITHUB_TOKEN` 값을 수동으로 업데이트하지 않는 것이 좋습니다. 프로젝트에 다른 리포지토리에 대한 액세스 권한이 필요한 경우 개발 컨테이너 구성에 추가 권한을 나열하여 codespace에 이러한 리포지토리에 대한 액세스 권한을 부여할 수 있습니다. 이렇게 하면 사용자가 codespace를 만들 때 추가 권한을 부여할 수 있습니다. 그러나 기존 codespace의 사용 권한은 변경되지 않습니다. 자세한 내용은 [Codespace 내의 다른 리포지토리에 대한 액세스 관리](/ko/codespaces/managing-your-codespaces/managing-repository-access-for-your-codespaces)을(를) 참조하세요.\n\n기존 codespace의 다른 리포지토리에 액세스해야 하거나 필요한 권한이 사용자 고유이고 다른 기여자 적용되지 않는 경우 리포지토리에 대한 액세스 권한이 있는 personal access token을(를) 만들고 codespace에 토큰을 추가할 수 있습니다. fine-grained personal access token을(를) 사용하고, 액세스가 필요한 리포지토리만 선택하고, **콘텐츠** 권한에 필요한 액세스 권한만 부여하여 토큰의 액세스를 제한하는 것이 좋습니다. 자세한 내용은 [개인용 액세스 토큰 관리](/ko/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)을(를) 참조하세요.\n\n그런 다음 토큰을 codespace에서 환경 변수로 추가하거나 GitHub Codespaces에 대한 비밀로 추가할 수 있습니다. 비밀을 만드는 경우 신뢰할 수 있는 특정 리포지토리만 비밀에 액세스하도록 허용해야 합니다. 새 비밀을 추가하면 기존 코드 영역을 다시 로드하여 새 비밀을 가져오라는 메시지가 표시됩니다. 자세한 내용은 [GitHub Codespaces에 대한 계정별 비밀 관리](/ko/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces)을(를) 참조하세요.\n\n토큰을 사용하여 codespace에서 인증하려면 다음 옵션이 있습니다.\n\n* 환경 변수 또는 비밀을 만들 때 `GH_TOKEN`이라는 이름을 사용할 수 있습니다.\n  `GH_TOKEN` 변수는 GitHub CLI 작업에서 기본적으로 사용되므로 `gh repo clone OWNER/REPO` 명령을 사용하여 리포지토리를 복제할 수 있습니다.\n\n  그러나 `git push`을 사용하여 리포지토리에 푸시 하려고 하면 Git의 자격 증명 도우미 인증에 기존 `GITHUB_TOKEN`를 사용 하려고 시도하여 인증이 실패합니다. 헬퍼를 재정의할 수 있지만, 이렇게 하면 codespace를 만든 원래 리포지토리와 상호 작용하려고 할 때 마찰이 발생할 수 있습니다.\n* 액세스 토큰을 포함하는 URL을 사용하여 리포지토리를 복제할 수 있습니다.\n  `YOUR-VARIABLE`을 만든 환경 변수 또는 비밀의 이름으로 바꿉니다.\n\n  ```shell\n  git clone https://USERNAME:$YOUR-VARIABLE@github.com/OWNER/REPO`\n  ```\n\n  이렇게 하면 특정 리포지토리에 대한 액세스 토큰이 저장되므로 기존 자격 증명 도우미를 재정의하지 않고도 리포지토리로 푸시 및 끌어올 수 있습니다.\n\n  > \\[!NOTE]\n  > 이러한 방식으로 복제하면 토큰이 Git 구성에 표시됩니다. 신뢰할 수 있는 리포지토리에서 만든 codespace에서 작업할 때만 이 메서드를 사용해야 하며, 액세스 토큰의 범위를 최대한 제한해야 합니다."}