• 요구사항
  • 옵션에 대한 SSH keys
  • 을 검토는 기존 SSH keys
  • 를 생성하는 새로운 SSH key pair
    • ED25519SSH keys
    • RSA SSH keys
    • 일반적인 단계를 생성하는 SSH 키 쌍
    • RSA 키와 OpenSSH 버전부터 6.5 7.,8
  • 추가 SSH 키 GitLab 계정
  • 두-인증(2FA)
  • 테스트는 모든 것이 제대로 설정
  • 로 작업하는 기본값이 아닌 SSH key pair 경
  • 당 저장소 SSH keys
  • 여러 계정에 하나의 GitLab 인스턴스
  • 배포 키
  • 응용 프로그램
    • Eclipse
  • SSH 에 GitLab server
    • 옵션에 대한 Microsoft Windows
  • 문제를 해결

Git is a distributed version control system,는 작업할 수 있음을 의미합니다.,또한 변경 사항을 다른 서버에 공유하거나”푸시”할 수도 있습니다.GITLAB 은 SSH 키를 사용하여 Git 과 서버 간의 보안 통신을 지원합니다.

SSH 프로토콜을 제공합 이 보고할 수 있 인증 theGitLab 원격 서버에 제공하지 않고 귀하의 사용자 이름 또는 비밀번호됩니다.

이 페이지에서는 gitlab 저장소에 대한 보안 연결을 돕는 데 사용할 수있는 보안 SSH 키를 구성하는 데 도움이 될 수 있습니다.

  • SSH 키 생성에 대한 정보가 필요하면 SSH 키에 대한 옵션부터 시작하십시오.,
  • GITLAB 계정 전용 SSH 키가있는 경우 기본이 아닌 SSH 키 쌍 경로로 작업하는 데 관심이있을 수 있습니다.
  • 이미 SSH 키 쌍이있는 경우 GITLAB 계정에 SSH 키를 추가 할 수있는 방법으로 이동할 수 있습니다.

요구 사항

SSH 를 지원하려면 GITLAB 은 OpenSSH 클라이언트를 설치해야합니다.GNU/Linux 및 macOS 는 물론 Windows10 에 사전 설치되어 있습니다.

그 excludesthe 지금 안전하지 않은 md5 서명 체계로,시스템에 ssh 버전 6.5 이상이 포함되어 있는지 확인하십시오., 다음과 같은 명령 버전을 반환합 ofSSH 시스템에 설치된

ssh -V

동안 GitLab 지원하지 않는 설치는 Microsoft Windows 에서,당신은 설정할 수 있습니다 SSH 키를 설정 Windows 으로 클라이언트입니다.

Ssh 키에 대한 옵션

GitLab 은 RSA,DSA,ECDSA 및 ED25519 키의 사용을 지원합니다.gitlab11.0 에서 dsa 키가 더 이상 사용되지 않습니다.

  • Go 와의 실제 암호화에서 언급했듯이 DSA 와 관련된 보안 문제는 ECDSA 에도 적용됩니다.,
  • noteAvailable 문서는 ED25519 가 더 안전하다는 것을 암시합니다. 를 사용하는 경우에는 RSA 키,미국 국립과학기술연구원에서 간행물 800-57 3 부(PDF)을 권장하는 키 크기가 적어도 2048 비트입니다.

    따라서 우리의 문서는 ED25519 및 RSA 키의 사용에 중점을 둡니다.관리자는 허용해야하는 키와 최소 길이를 제한 할 수 있습니다.

    기존 SSH 키 검토

    기존 SSH 키가있는 경우이를 사용하여 gitlabrepositories 와의 안전한 연결을 도울 수 있습니다., 기본적으로 Linux 및 macOS 시스템의 SSH 키는.ssh/하위 디렉토리의 사용자 홈 디렉토리에 저장됩니다. 다음과 같은 테이블을 포함한 기본 파일 이름을 각 SSH 키를 알고리즘:

    권장 사항에 대한 옵션을 참조하십시오 SSH keys.

    새 SSH 키 쌍 생성

    만들려는 경우:

    • ED25519 키는 ED25519SSH 키를 읽습니다.
    • Rsa 키,rsa SSH 키를 읽습니다.

    ED25519SSH 키

    ED25519 키가 RSA 키보다 안전하고 성능이 뛰어나다는 gosuggests 가있는 책 실용적인 암호화.,

    OpenSSH6.5 가 2014 년에 ED25519SSH 키를 도입함에 따라 모든 currentoperating 시스템에서 사용할 수 있어야합니다.

    을 만들고 구성할 수 있습니 ED25519 키으로 다음과 같은 명령:

    ssh-keygen -t ed25519 -C "<comment>"

    -C플래그와 함께 제시된 의견과 같은 이메일 주소하는 선택적인 방법으로 레이블을 SSH keys.

    당신이 볼 수와 비슷한 응답:

    Generating public/private ed25519 key pair.Enter file in which to save the key (/home/user/.ssh/id_ed25519):

    에 대한 지침을 진행하는 일반적인 단계입니다.,

    RSA SSH keys

    사용하는 경우 RSA 키 SSH,미국 국립표준기술연구소에 좋습면 사용하는 키 크기가 적어도 2048bits.By 기본적으로ssh-keygen명령어를 만듭니다 1024 을 통하여.,

    를 작성하고 구성할 수 있습니다 RSA 키으로 다음과 같은 명령,대체 원하는 경우에 대해 권장하는 최소의 키 크기2048

    ssh-keygen -t rsa -b 2048 -C "[email protected]"

    -C플래그 와 함께 제시된 의견과 같은 이메일 주소하는 선택적인 방법으로 레이블을 SSH keys.

    당신이 볼 수와 비슷한 응답:

    Generating public/private rsa key pair.Enter file in which to save the key (/home/user/.ssh/id_rsa):

    에 대한 지침을 진행하는 일반적인 단계입니다.

    참고 openssh 버전 7 이 있습니다.,8 이하에서는 관련된 문제를 고려합니다.인코딩.

    일반적인 단계를 생성하는 SSH 키 쌍

    여부를 만드 ED25519 또는 RSA 키에,당신은 시작과 함께ssh-keygen명령입니다.이 시점에서,당신은 다음과 같은 메시지에서 명령어 라인(예 ED25519 키가):

    Generating public/private ed25519 key pair.Enter file in which to save the key (/home/user/.ssh/id_ed25519):

    지 않는 경우에는 이미 SSH 과가 생성되지 않은 배포 키를,제안 된 파일 및 디렉토리에 있습니다. 귀하의 SSH 클라이언트는 추가 구성없이 결과 SSH 키 쌍을 사용합니다.,

    또는 새 SSH 키 쌍을 다른 위치에 저장할 수 있습니다.당신은 당신의 선택의 디렉토리와 파일 이름을 할당 할 수 있습니다.해당 SSH 키 쌍을 특정 호스트에 바칠 수도 있습니다.

    를 지정한 후 파일을 저장하는 SSH 키 설정할 수 있습니다 upa 암호를 SSH 키:

    Enter passphrase (empty for no passphrase):Enter same passphrase again:

    성공하면,당신은 확인 메시의ssh-keygencommandsaved 신분증과됩니다.,

    필요한 경우 업데이트할 수 있습니다 암호를 다음과 같은 명령:

    ssh-keygen -p -f /path/to/ssh_key

    RSA 키와 OpenSSH 버전부터 6.5 7.8

    전 OpenSSH7.8 기본 공개 키를 지문 RSA 키에 따라 MD5,따라서 안전하지 않습니다.

    하는 경우 버전의 OpenSSH 사이에있는 버전 6.5 버전 7.8(포함),실행하는ssh-keygen-o옵션을 저장하는 귀하의 개인 SSH 키에 더 secureOpenSSH 형식입니다.,

    이미 GitLab 과 함께 사용할 RSA SSH 키 쌍이있는 경우 업그레이드를 고려하십시오.보다 안전한 암호 암호화 형식을 사용하십시오. 을 할 수 있도록 다음과 같은 명령:

    ssh-keygen -o -f ~/.ssh/id_rsa

    또는 당신을 생성할 수 있는 새로운 RSA 키에 더 안전한 암호화 포맷을 사용하여 다음과 같은 명령을 실행합니다:

    ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
    noteAs 에서 언급한ssh-keygen남자 페이지 ED25519 이미 암호화 키보 secureOpenSSH 형식입니다.,

    GITLAB 계정에 SSH 키 추가

    이제 생성 한 SSH 키를 GitLab 계정에 복사 할 수 있습니다. 이렇게하려면 다음 단계를 따르십시오.

    1. 공개 SSH 키를 텍스트 형식으로 정보를 저장하는 위치에 복사하십시오.,다음 옵션을 저장한 정보를 위해 ED25519 키 clipboardfor 주목 운영 체제:

      macOS:

      pbcopy < ~/.ssh/id_ed25519.pub

      리눅스(필요한xclip패키지):

      xclip -sel clip < ~/.ssh/id_ed25519.pub

      Git Bash Windows:

      cat ~/.ssh/id_ed25519.pub | clip

      을 사용하는 경우에는 RSA 키를 대체합니다.

    2. 또는 로컬 GitLab 인스턴스 URL 로 이동하여 로그인합니다.,
    3. 오른쪽 상단 모서리에있는 아바타를 선택하고 설정
    4. Ssh 키를 클릭하십시오.
    5. 키 텍스트 상자에 복사 한 공개 키를 붙여 넣습니다.
    6. 키에 Work Laptop orHome Workstation 과 같은 제목 텍스트 상자에 설명적인 이름이 포함되어 있는지 확인하십시오.
    7. “Expires at”섹션 아래의 키에 대한(선택 사항)만료 날짜를 포함하십시오. (GitLab12.9 에 소개되었습니다.)
    8. 키 추가 버튼을 클릭합니다.

    이 절차를 사용하여”만료”된 SSH 키는 GitLab 워크 플로에서 유효합니다.,GITLAB 으로 구성된 만료 날짜가 SSH 키 자체에 포함되어 있지 않으므로 필요에 따라 공용 SSH 키를 계속 내보낼 수 있습니다.

    경우에 당신 수동으로 복사한 공개 SSH 키 있는지 확인을 복사 entirekey 을 시작으로ssh-ed25519(또는ssh-rsa)및 종료와 함께 귀하의 전자 메일 주소입니다.

    이중 인증(2FA)

    SSH 를 통해 이중 인증(2FA)forGit 을 설정할 수 있습니다.,

    테스트는 모든 것이 제대로 설정

    는지 여부를 테스트하는 SSH 키를 올바르게 추가하려면 다음 명령을 실행하십시오에서 당신의 터미널(바꾸기gitlab.com도메인 ofyour GitLab 인스턴스):

    첫 번째 시간에 당신에 연결 GitLab SSH 를 통해 확인해야 합니다 theauthenticity 의 GitLab 호스트에 연결하고 있습니다.예를 들어 연결할 때 GitLab.com gitlab 을 추가하려면yes에 응답하십시오.,com tothe 신뢰할 수 있는 호스트 목록:

    The authenticity of host 'gitlab.com (35.231.145.151)' can't be established.ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'gitlab.com' (ECDSA) to the list of known hosts.

    참고 GitLab.com,상담 theSSH 스 키를 지문 섹션을 확실히 당신이 올바른 서버에 연결. 예를 들어,링크 된 섹션에서 위에 표시된 ECDSA 키 지문을 볼 수 있습니다.

    일단 알려진 호스트 목록에 추가되면 GitLab 호스트의 인증 가능성을 다시 한번 검증해야합니다. 위의 commandagain 을 실행하면 Gitlab,@username에 오신 것을 환영합니다! 메시지.,

    경우 시작 메시지가 나타나지 않 문제를 해결할 수 있습니다 실행하여 문제를ssh자세한 정보 표시 모드에서 다음 명령을 사용:

    ssh -Tvvv [email protected]

    로 작업하는 기본값이 아닌 SSH key pair 경

    경우 사용되는 기본이 아닌 파일 경로에 대한 귀하의 GitLab SSH key pair,구성하는 SSH 클라이언트는 지점을 GitLab 개인 SSH 키입니다.

    이러한 변경 내용을 적용하려면 다음 명령을 실행합니다.

    eval $(ssh-agent -s)ssh-add <path to private SSH key>

    이제 이러한 설정을 저장을~/.ssh/config파일입니다., 두 examplesfor SSH keys 전용 GitLab 예로 들면 다음과 같습니다:

    # GitLab.comHost gitlab.com Preferredauthentications publickey IdentityFile ~/.ssh/gitlab_com_rsa# Private GitLab instanceHost gitlab.company.com Preferredauthentications publickey IdentityFile ~/.ssh/example_com_rsa

    공공 SSH keys 한 고유한 GitLab,그들은 바인딩하여 귀하의 계정이다.SSH 키는 SSH 를 통해 코드를 푸시 할 때 가지고있는 유일한 식별자이므로 단일 사용자에게 고유하게 매핑해야하는 이유입니다.,

    당 저장소 SSH keys

    사용할 경우 서로 다른 키를 따라 저장소에 당신은 workingon 행할 수 있습니다면 다음 명령 안에 있는 동안 귀하의 저장소:

    git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null"

    이를 사용하지 않는 SSH 에이전트와 필요 적어도 Git2.10.

    단일 GitLab 인스턴스의 다중 계정

    per-repository 메서드는 단일 GitLab 인스턴스 내에서 다중 계정을 사용할 때도 작동합니다.

    또는~.ssh/config에서 호스트에 별칭을 직접 할당 할 수 있습니다., SSH 고,확장,Git 실패하면 로그에 있는 경우 isanIdentityFile설정 외부이의Host블록에서.ssh/config. 이 isdue 하는 방법 SSH 모IdentityFile항목과는 변경되지 않성을 설정하여IdentitiesOnlyyes. IdentityFile항목은 SSH 키 쌍의 개인 키를 가리켜 야합니다.

    주 exampleHost별칭을 정의user_1.gitlab.comuser_2.gitlab.com에 대한 효율성 및 투명성에 있습니다., 고급 configurationsare 을 유지하기가 어려워;를 사용하여 이 유형의 별명은 쉽게 tounderstand 때 다른 도구를 사용하여 같은git remotesub-명령입니다. SSHwould 이해하는 어떤 문자열Host별칭을 따라서Tanuki1Tanuki2,제공에도 불구하고 매우 작은 컨텍스트로을 그들이 지점,또한 작품이다.,

    복제gitlab소 모양은 일반적으로 다음과 같습니다:

    git clone [email protected]:gitlab-org/gitlab.git

    을 복제하에 그것을 위해user_1, 대체gitlab.comSSH 별칭user_1.gitlab.com

    git clone git@<user_1.gitlab.com>:gitlab-org/gitlab.git

    수정 이전에 복제된 저장소를 사용하는git remote명령입니다.

    아래 예제는 원격 리포지토리가origin로 앨리어싱되었다고 가정합니다.,배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포 키 배포

    응용 프로그램

    Eclipse

    EGit 을 사용하는 경우 Ssh 키를 Eclipse 에 추가 할 수 있습니다.

    SSH 에 GitLab server

    GitLab 와 통합 시스템 설치 SSH 데몬을 지정한 사용자(일반적으로 라는git)을 통하여 모든 액세스를 요청을 처리합니다. SSH 를 통해 GITLAB 서버에 Usersconnecting 는 자신의 사용자 이름 insteadof 자신의 SSH 키로 식별됩니다.,

    GITLAB 서버에서 수행 된 SSH 클라이언트 작업은 thisuser 로 실행됩니다. 비록 그것을 수정하는 것이 가능하 SSH 구성을 위한 이용자가,예를 들어,제공한 개인 SSH 키를 인증하여 이러한 요청,이의 보호를 받고 지원하고 좋으로 제공 significantsecurity 위험이 있습니다.

    GitLab 확인 과정을 포함한 이러한 상황을 확인하고 지시한 곧 이 섹션은 경우 서버는 다음과 같이 구성,예를 들어,

    사용자 지정 구성을 제거 즉시할 수 있습니다., 이러한 사용자 지정은 명시 적으로 지원되지 않으며 언제든지 작동을 멈출 수 있습니다.

    옵션에 대한 Microsoft Windows

    를 실행하는 경우 10Windows,Windows 하위 시스템을 위한 리눅스(WSL),그것의 최신 WSL2 버전,설치의 리눅스 배포판에 포함 Git SSH 클라이언트입니다.

    현재 버전의 Windows 의 경우 Windows 용 git 및 SSH 클라이언트를 설치할 수도 있습니다.,

    대안 도구는 다음과 같습니다.

    • Cygwin
    • PuttyGen

    문제를 해결

    경우에 Git clone 하라는 메시지가 표시됩니다 암호를 다음과 같[email protected]'s password:가 잘못된 것 같 SSH setup.,

    • 는지 확인을 생성 SSH 키 쌍대 및 추가 공용 SSHkey 귀하의 GitLab 프로필
    • 시 수동으로 등록하는 귀하의 개인 SSH 키를 사용하는ssh-agent로 documentedearlier 이 문서의
    • 디버깅을 시도 연결에 의해 실행하는ssh -Tv [email protected](대체example.com 의 GitLab 도메인)