Git에서 sudo
명령 또는 상승된 권한을 사용해야 하나요?
Git에서 sudo
명령 또는 상승된 권한(예: 관리자 권한)을 사용하면 안 됩니다. sudo
를 사용해야 하는 ‘아주 좋은 이유’가 있는 경우 모든 명령에서 사용해야 합니다(su
를 사용하여 해당 시점의 셸을 루트로 가져오는 것이 더 좋을 수 있음).__ sudo
없이 SSH 키를 생성한 다음, sudo git push
와 같은 명령을 사용하려고 하면 생성한 것과 동일한 키가 사용되지 않습니다.
올바른 서버에 연결하고 있는지 확인합니다.
입력이 힘든 것은 모두가 알고 있습니다. 입력하는 내용에 주의하세요. “githib.com” 또는 “guthub.com”에는 연결할 수 없습니다. 경우에 따라 회사 네트워크에서도 DNS 레코드 확인과 관련된 이슈가 발생할 수 있습니다.
올바른 도메인에 연결하고 있는지 확인하기 위해 다음 명령을 입력할 수 있습니다.
$ ssh -vT git@호스트 이름
> OpenSSH_8.1p1, LibreSSL 2.7.3
> debug1: Reading configuration data /Users/YOU/.ssh/config
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 47: Applying options for *
> debug1: Connecting to 호스트 이름 port 22.
포트 22에서 연결해야 합니다.
항상 “git” 사용자 사용
원격 URL 연결을 비롯한 모든 연결은 “git” 사용자로 만들어야 합니다. GitHub Enterprise Server 사용자 이름을 사용하여 연결하려고 하면 실패합니다.
$ ssh -T GITHUB-USERNAME@호스트 이름
> Permission denied (publickey).
연결에 실패하고 GitHub Enterprise Server 사용자 이름으로 원격 URL을 사용하는 경우 “git” 사용자를 사용하도록 원격 URL을 변경할 수 있습니다.
다음을 입력하여 연결을 확인해야 합니다.
$ ssh -T git@호스트 이름
> Hi USERNAME! You've successfully authenticated...
사용 중인 키가 있는지 확인합니다.
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
프라이빗 키가 생성되어 SSH에 로드되었는지 확인합니다.
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
GitHub Desktop이 설치된 경우 이를 사용하여 리포지토리를 복제하고 SSH 키를 처리하지 않을 수 있습니다.
-
Git Bash를 사용하는 경우 ssh-agent를 켭니다.
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566
Git for Windows 등의 다른 터미널 프롬프트를 사용하는 경우 ssh-agent를 켭니다.
# start the ssh-agent in the background $ eval $(ssh-agent -s) > Agent pid 59566
참고: 위의 eval 명령은 사용자 환경에서 ssh-agent를 수동으로 시작합니다. ssh-agent가 이미 백그라운드 시스템 서비스로 실행 중이면 해당 명령이 작동하지 않을 수 있습니다. 이 경우 사용자 환경 관련 문서를 확인해 보세요.
-
프라이빗 키가 생성되어 SSH에 로드되었는지 확인합니다.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.
-
프라이빗 키가 생성되어 SSH에 로드되었는지 확인합니다.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
ssh-add
명령은 숫자와 문자로 이루어진 긴 문자열을 ‘출력해야 합니다’.__ 아무것도 출력되지 않는 경우 새 SSH 키를 생성하여 GitHub Enterprise Server와 연결해야 합니다.
팁: 대부분의 시스템에서는 기본 프라이빗 키(~/.ssh/id_rsa
및 ~/.ssh/identity
)가 SSH 인증 에이전트에 자동으로 추가됩니다. 키를 생성할 때 파일 이름을 재정의하지 않는 한, ssh-add path/to/key
를 실행할 필요는 없습니다.
자세한 정보 가져오기
git@[호스트 이름]
에 연결을 시도하여 키가 사용되고 있는지 확인할 수도 있습니다.
$ ssh -vT git@호스트 이름
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type -1
> debug1: identity file /Users/YOU/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Trying private key: /Users/YOU/.ssh/id_rsa
> debug1: Trying private key: /Users/YOU/.ssh/id_dsa
> debug1: No more authentication methods to try.
> Permission denied (publickey).
해당 예제에서는 SSH에서 사용할 키가 없었습니다. “ID 파일” 줄의 끝에 있는 “-1”은 SSH에서 사용할 파일을 찾을 수 없었음을 의미합니다. 나중에 “Trying private key(프라이빗 키 시도 중)” 줄도 파일을 찾을 수 없음을 나타냅니다. 파일이 있는 경우 해당 줄은 각각 “1”과 “Offering public key(퍼블릭 키 제공 중)”가 됩니다.
$ ssh -vT git@호스트 이름
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type 1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Offering RSA public key: /Users/YOU/.ssh/id_rsa
퍼블릭 키가 계정에 연결되었는지 확인합니다.
보안 연결을 설정하려면 GitHub Enterprise Server에 퍼블릭 키를 제공해야 합니다.
-
터미널을 엽니다.
-
백그라운드에서 SSH 에이전트를 시작합니다.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
퍼블릭 키 지문을 찾아서 기록해 둡니다.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
페이지의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 설정 클릭합니다.
-
사이드바의 "액세스" 섹션에서 SSH 및 GPG 키를 클릭합니다.
-
ssh-add
명령의 출력과 SSH 키 목록을 비교합니다.
-
명령줄을 엽니다.
-
백그라운드에서 SSH 에이전트를 시작합니다.
$ ssh-agent -s > Agent pid 59566
-
퍼블릭 키 지문을 찾아서 기록해 둡니다.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
페이지의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 설정 클릭합니다.
-
사이드바의 "액세스" 섹션에서 SSH 및 GPG 키를 클릭합니다.
-
ssh-add
명령의 출력과 SSH 키 목록을 비교합니다.
-
터미널을 엽니다.
-
백그라운드에서 SSH 에이전트를 시작합니다.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
퍼블릭 키 지문을 찾아서 기록해 둡니다. OpenSSH 6.7 이하를 사용하는 경우:
$ ssh-add -l > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
OpenSSH 6.8 이상을 사용하는 경우:
$ ssh-add -l -E md5 > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
-
페이지의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 설정 클릭합니다.
-
사이드바의 "액세스" 섹션에서 SSH 및 GPG 키를 클릭합니다.
-
ssh-add
명령의 출력과 SSH 키 목록을 비교합니다.
GitHub Enterprise Server에 퍼블릭 키가 표시되지 않는 경우 GitHub Enterprise Server에 SSH 키를 추가하여 컴퓨터와 연결해야 합니다.
경고: GitHub Enterprise Server에 익숙하지 않은 SSH 키가 표시되는 경우 즉시 삭제하고, 추가 도움이 필요하면 사이트 관리자에게 문의에 문의하세요. 식별되지 않은 퍼블릭 키는 가능한 보안 문제를 나타낼 수 있습니다. 자세한 내용은 "SSH 키 검토"을(를) 참조하세요.