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
, configUser
및 configPort
매개 변수를 설정할 수 있습니다.
이러한 매개 변수를 사용하면 별칭을 통해 사용자 지정 스크립트에서 사용하기 위해 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를 사용한 설정 예제
이 섹션에서는 Azure Pipelines 내에서 YAML과 함께 프라이빗 GitHub 리포지토리를 사용하는 방법을 설명합니다.
오픈 소스 커뮤니티에 노출하지 않으려는 리포지토리가 있는 경우 일반적인 방법은 리포지토리를 비공개로 만드는 것입니다. 그러나 이 도구를 사용하여 리포지토리를 관리하려면 Azure DevOps와 같은 CI/CD 도구가 리포지토리에 액세스해야 합니다. Azure DevOps 액세스 권한을 부여하려면 GitHub에 대한 액세스를 인증하기 위해 SSH 키가 필요할 수 있습니다.
다음은 SSH 키를 사용하여 GitHub에 대한 액세스를 인증하는 단계입니다.
GitHub에서 Azure DevOps로의 액세스를 인증하는 데 사용할 키 쌍을 생성합니다.
GitBash에서 다음 명령을 실행합니다.
ssh-keygen -t rsa
SSH 키 쌍의 이름을 입력합니다. 이 예제에서는 myKey 사용합니다.
(선택 사항) 암호를 입력하여 프라이빗 키를 암호화할 수 있습니다. 이 단계는 선택 사항입니다. 암호를 사용하지 않는 것보다 암호를 사용하는 것이 더 안전합니다.
ssh-keygen
SSH 키 쌍을 만들고 다음과 같은 성공 메시지가 나타납니다.Windows 파일 탐색기에서 새로 만든 키 쌍을 확인합니다.
GitHub 리포지토리에 공개 키를 추가합니다. (공개 키는 ".pub"로 끝납니다). 이렇게 하려면 브라우저에서 다음 URL로 이동합니다.
https://github.com/(organization-name)/(repository-name)/settings/keys
.배포 키 추가를 선택합니다.
새 추가 대화 상자에서 제목을 입력한 다음, SSH 키를 복사하여 붙여넣습니다.
키 추가를 선택합니다.
Azure DevOps에 프라이빗 키를 업로드합니다.
Azure DevOps의 왼쪽 메뉴에서 Pipelines>라이브러리선택합니다.
파일>+ 보안 파일선택합니다.
찾아보기를 선택한 다음, 프라이빗 키를 선택합니다.
"알려진 호스트 항목"을 복구합니다. GitBash에서 다음 명령을 입력합니다.
ssh-keyscan github.com
"알려진 호스트 항목"은 GitBash 결과의 # 시작하지 않는 표시된 값입니다.
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 이상 |
작업 범주 | 유틸리티 |