다음을 통해 공유


InstallSSHKey@0 - SSH 키 v0 작업 설치

빌드 또는 릴리스 단계 전에 파이프라인에서 이 작업을 사용하여 SSH 키를 설치합니다.

구문론

# Install SSH key v0
# Install an SSH key prior to a build or deployment.
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: # string. Alias: hostName. Required. Known Hosts Entry. 
    #sshPublicKey: # string. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key. 
  # Advanced
    #addEntryToConfig: false # boolean. Add entry to SSH config. Default: false.
    #configHostAlias: # string. Required when addEntryToConfig = true. Alias. 
    #configHostname: # string. Required when addEntryToConfig = true. Host name. 
    #configUser: # string. Optional. Use when addEntryToConfig = true. User. 
    #configPort: # string. Optional. Use when addEntryToConfig = true. Port.
# Install SSH key v0
# Install an SSH key prior to a build or deployment.
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: # string. Alias: hostName. Required. Known Hosts Entry. 
    #sshPublicKey: # string. SSH Public Key. 
    #sshPassphrase: # string. SSH Passphrase. 
    sshKeySecureFile: # string. Required. SSH Key.

입력

알려진 호스트 항목knownHostsEntry -
입력 별칭: hostName. string; 필수 사항입니다.

known_hosts 파일에 대한 SSH 키 항목을 지정합니다.


SSH 공개 키sshPublicKey -
string;

선택 사항. 공용 SSH 키의 내용을 지정합니다.


sshPassphrase - SSH 암호
string;

선택 사항. SSH 키의 암호를 지정합니다(있는 경우).


SSH 키sshKeySecureFile -
string; 필수 사항입니다.

에이전트에 설치할 Secure Files 업로드된 SSH 키를 지정합니다.


addEntryToConfig - SSH 구성 항목 추가
boolean; 기본값은 false입니다.

선택 사항. SSH 구성 파일에 설치된 키와 관련된 항목을 추가합니다. 키 파일은 모든 후속 작업에 사용할 수 있습니다.


configHostAlias - 별칭
string; addEntryToConfig = true때 필요합니다.

SSH 구성 항목의 이름을 지정합니다.


configHostname - 호스트 이름
string; addEntryToConfig = true때 필요합니다.

SSH 구성 항목의 호스트 이름 속성을 지정합니다.


configUser - 사용자
string; 선택 사항. addEntryToConfig = true때 사용합니다.

SSH 구성 항목의 사용자 이름 속성을 지정합니다.


configPort - 포트
string; 선택 사항. addEntryToConfig = true때 사용합니다.

SSH 구성 항목의 포트를 지정합니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성참조하세요.

출력 변수

없음.

비고

빌드 또는 릴리스 단계 전에 파이프라인에서 이 작업을 사용하여 SSH 키를 설치합니다.

비고

이 작업에는 에이전트의 Windows용 Git Bash가 필요했습니다.

사용 현황 및 모범 사례

호스트된 풀SSH 키를 설치하는 경우 파이프라인의 이후 단계에서 일치하는 공개 키가 이미 있는 원격 시스템에 연결할 수 있습니다. 예를 들어 Git 리포지토리 또는 Azure의 VM에 연결할 수 있습니다.

공개 키를 작업 구성에 일반 텍스트로 전달하지 않는 것이 좋습니다. 대신 mykey.pub 파일의 내용에 대한 파이프라인의 비밀 변수 설정합니다. 그런 다음 파이프라인 정의에서 변수를 $(myPubKey)호출합니다. 키의 비밀 부분에 대해 Azure Pipelines의 보안 파일 라이브러리 사용합니다.

작업을 만들려면 잘 구성된 SSH 키 설치 작업의 다음 예제를 사용합니다.

steps:
- task: InstallSSHKey@0
  displayName: 'Install an SSH key'
  inputs:
    knownHostsEntry: 'SHA256:1Hyr55tsxGifESBMc0s+2NtutnR/4+LOkVwrOGrIp8U johndoe@contoso'
    sshPublicKey: '$(myPubKey)'
    sshKeySecureFile: 'id_rsa'

비고

공개 키를 리포지토리\조직에 추가해야 합니다. 그렇지 않으면 액세스 문제가 발생합니다. GitHub의 경우 위의 가이드따릅니다. Azure DevOps Services의 경우 Azure DevOps Services/TFS공개 키를 추가합니다.

동일한 파이프라인 작업에 여러 SSH 키 설치

동일한 파이프라인 작업에서 둘 이상의 키를 사용하는 경우 첫 번째 키는 기본적으로 사용됩니다. SSH 연결을 설정할 때 원하는 키를 사용하려면 InstallSSHKey 작업의 Advanced 섹션을 사용하여 addEntryToConfig, configHostAlias, configHostname, configUserconfigPort매개 변수를 설정할 수 있습니다.

이러한 매개 변수를 사용하면 별칭을 통해 사용자 지정 스크립트에서 사용하기 위해 SSH 구성 파일(예: Linux용 /root/.ssh/config)에 호스트를 추가할 수 있습니다.

빌드가 완료되면 작업은 원래 SSH 구성 파일을 복원하려고 시도합니다. 처음에 SSH 구성 파일이 없으면 호스트가 에이전트에서 제거됩니다.

여러 SSH 키 설치의 예입니다. 각 리포지토리에 대한 여러 GitHub 리포지토리 및 자체 키가 있는 경우:

pool: <Some Agent Pool>

steps:
- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: $(known_host)
    sshPublicKey: $(first_public_key)
    sshKeySecureFile: $(first_private_key)
    addEntryToConfig: true
    configHostAlias: <first-host-alias>
    configHostname: github.com
    configUser: git
  displayName: Install First Repo SSH Key

- task: InstallSSHKey@0
  inputs:
    knownHostsEntry: $(known_host)
    sshPublicKey: $(second_public_key)
    sshKeySecureFile: $(second_private_key)
    addEntryToConfig: true
    configHostAlias: <second-host-alias>
    configHostname: github.com
    configUser: git
  displayName: Install Second Repo SSH Key

- bash: git clone git@<first-host-alias>:<owner>/<first-repo>.git
  displayName: Clone First Repo

- bash: git clone git@<second-host-alias>:<owner>/<second-repo>.git
  displayName: Clone Second Repo

관련 GitHub 문서 .

예시

GitHub를 사용한 설정 예제

이 섹션에서는 Azure Pipelines 내에서 YAML과 함께 프라이빗 GitHub 리포지토리를 사용하는 방법을 설명합니다.

오픈 소스 커뮤니티에 노출하지 않으려는 리포지토리가 있는 경우 일반적인 방법은 리포지토리를 비공개로 만드는 것입니다. 그러나 이 도구를 사용하여 리포지토리를 관리하려면 Azure DevOps와 같은 CI/CD 도구가 리포지토리에 액세스해야 합니다. Azure DevOps 액세스 권한을 부여하려면 GitHub에 대한 액세스를 인증하기 위해 SSH 키가 필요할 수 있습니다.

다음은 SSH 키를 사용하여 GitHub에 대한 액세스를 인증하는 단계입니다.

  1. GitHub에서 Azure DevOps로의 액세스를 인증하는 데 사용할 키 쌍을 생성합니다.

    1. GitBash에서 다음 명령을 실행합니다.

      ssh-keygen -t rsa
      
    2. SSH 키 쌍의 이름을 입력합니다. 이 예제에서는 myKey 사용합니다.

      SSH 키 쌍의 이름을 입력하라는 GitBash 프롬프트의 스크린샷

    3. (선택 사항) 암호를 입력하여 프라이빗 키를 암호화할 수 있습니다. 이 단계는 선택 사항입니다. 암호를 사용하지 않는 것보다 암호를 사용하는 것이 더 안전합니다.

      SSH 키 쌍의 암호를 입력하라는 GitBash 프롬프트의 스크린샷

      ssh-keygen SSH 키 쌍을 만들고 다음과 같은 성공 메시지가 나타납니다.

      SSH 키 쌍이 생성되었음을 보여 주는 GitBash 메시지의 스크린샷

    4. Windows 파일 탐색기에서 새로 만든 키 쌍을 확인합니다.

      Windows 파일 탐색기의 키 쌍 파일 스크린샷

  2. GitHub 리포지토리에 공개 키를 추가합니다. (공개 키는 ".pub"로 끝납니다). 이렇게 하려면 브라우저에서 다음 URL로 이동합니다. https://github.com/(organization-name)/(repository-name)/settings/keys.

    1. 배포 키 추가를 선택합니다.

    2. 추가 대화 상자에서 제목을 입력한 다음, SSH 키를 복사하여 붙여넣습니다.

      새 추가 대화 상자의 스크린샷

    3. 키 추가를 선택합니다.

  3. Azure DevOps에 프라이빗 키를 업로드합니다.

    1. Azure DevOps의 왼쪽 메뉴에서 Pipelines>라이브러리선택합니다.

      Azure Pipelines 메뉴의 스크린샷

    2. 파일>+ 보안 파일선택합니다.

      파일 보안 메뉴의 스크린샷

    3. 찾아보기를 선택한 다음, 프라이빗 키를 선택합니다.

      파일 업로드 대화 상자 및 찾아보기 단추 스크린샷

  4. "알려진 호스트 항목"을 복구합니다. GitBash에서 다음 명령을 입력합니다.

    ssh-keyscan github.com
    

    "알려진 호스트 항목"은 GitBash 결과의 # 시작하지 않는 표시된 값입니다.

    GitBash의 주요 검색 결과 스크린샷

  5. YAML 파이프라인을 만듭니다.

    YAML 파이프라인을 만들려면 YAML 정의에서 다음 작업을 추가합니다.

    - task: InstallSSHKey@0
     inputs:
       knownHostsEntry: #{Enter your Known Hosts Entry Here}
       sshPublicKey: #{Enter your Public key Here}
       sshKeySecureFile: #{Enter the name of your key in "Secure Files" Here}
    

이제 SSH 키가 설치되고 기본 HTTPS가 아닌 SSH를 사용하여 연결할 스크립트를 진행할 수 있습니다.

요구 사항

요구 사항 설명
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 이 작업은 다음 명령 제한사용하여 실행됩니다.
settable 변수 이 작업에는 SSH_AGENT_PID, SSH_AUTH_SOCK, INSTALL_SSH_KEY_CONFIG_LOCATION INSTALL_SSH_KEY_KNOWN_HOSTS_LOCATION 변수를설정할 수 있는 권한이 있습니다.
에이전트 버전 2.182.1 이상
작업 범주 유틸리티
요구 사항 설명
파이프라인 유형 YAML, 클래식 빌드, 클래식 릴리스
다음에서 실행 에이전트, DeploymentGroup
요구 없음
기능 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 어느 것이든
settable 변수 어느 것이든
에이전트 버전 2.117.0 이상
작업 범주 유틸리티