MFA가 활성화된 서버에 대한 새 SSH 서비스 연결을 생성하는 방법은 무엇입니까?

MFA가 활성화된 서버에 대한 새 SSH 서비스 연결을 생성하는 방법은 무엇입니까?

Azure 파이프라인을 만들려고 합니다. 프로세스의 일부에는 파일을 원격 서버에 안전하게 복사할 수 있도록 서비스 연결을 만드는 작업이 포함됩니다.

여기에 이미지 설명을 입력하세요

질문이 2개 있습니다:

  1. 현장에는 무엇을 넣나요 Service connection name? 간단한 설명이 포함된 예이면 충분합니다.
  2. MFA가 활성화된 경우 이 SSH 서비스 연결을 어떻게 생성합니까? UI에는 이와 관련된 옵션이 없습니다.

이에 대해 ChatGPT에 문의했는데 맞는지 모르겠습니다.

원격 시스템에서 MFA(다단계 인증)를 활성화한 경우 기존 비밀번호나 개인 키와 다른 인증 방법을 사용해야 합니다. 한 가지 옵션은 인증 앱(예: Microsoft Authenticator)에서 생성되고 인증을 위해 암호와 함께 사용되는 시간 기반 코드인 보안 토큰을 사용하는 것입니다.

Azure Pipeline SSH 작업에서 보안 토큰을 사용하려면 작업 구성에 추가 매개 변수를 추가해야 합니다. 다음은 보안 토큰을 사용하여 SSH 작업을 구성하는 방법에 대한 예입니다.

- task: SSH@0
  inputs:
    sshEndpoint: '<your SSH service connection name>'
    runOptions: 'ssh -o StrictHostKeyChecking=no'
    command: 'ls -l'
    arguments: '-la /home'
    sshPublicKey: '<your public key>'
    sshPassphrase: '<your passphrase>'
    sshExtraOptions: '-o IdentitiesOnly=yes'
    useAgentAuth: false
    sshPassword: '<your password>'
    sshSecurityToken: '<your security token>'

이 예에서 sshSecurityToken매개변수는 인증에 사용해야 하는 보안 토큰을 지정하는 데 사용됩니다. 또한 구성에 공개 키, 암호(해당하는 경우) 및 비밀번호(해당하는 경우)를 포함해야 합니다.

이 올바른지? 그렇다면 보안 토큰과 관련된 인증 부분을 실제로 어떻게 구현합니까? 어떤 종류의 도움이라도 주시면 감사하겠습니다.

답변1

connection name다음에 따른 서비스 매뉴얼이다:

필수의. 작업 속성에서 서비스 연결을 참조하는 데 사용되는 이름입니다. Azure 계정이나 구독의 이름이 아닙니다. YAML을 사용하는 경우 이름을 azureSubscription 또는 스크립트의 동등한 구독 이름 값으로 사용합니다.

즉, 이 연결을 식별하는 데 사용되는 필수 레이블 이름/레이블입니다. 당신에게 의미가 있는 거의 모든 것이 작동해야 합니다. 이 예에서는 MyArmSubsciption, 그러나 ssh2hostname 또는 ServiceConnection-2-Hostname-via-ssh또는 귀하에게 적합한 것을 사용합니다.
메모:있다혹시허용되는 문자에 대한 제한 사항(예: 공백 없음, 와일드카드 문자 없음, 이모티콘 없음 및/또는 만 A-Z,a-z,0-9,-_.등)이 있지만 이러한 제한이 문서화되어 있는지 찾을 수 없습니다.

선택적 설명은 연결 이름보다 더 적은 입력 제한으로 더 긴 설명을 허용해야 합니다.

서비스 스크린샷


SSH 다단계 인증 - 간단할 것으로 예상됩니다.지원되지 않음.

철학과 설계에 따라 MFA는 자동화된 로그인을 중지하기 위한 것이며 파이프라인에서 일회성 인증 코드를 수동으로 입력하기 위한 중단점을 제공하는 사람은 아무도 없습니다.

일반적인 해결 방법은 MFA가 필요하지 않고 SSH 공개 키 인증만으로 충분한 별도의 서비스 계정/기술 계정을 설정하는 것입니다.
인식된 보안 문제를 해결하려면 상대적으로 덜 사용되는 openssh 기능을 사용하고~/.ssh/authorized_keys파일 형식 - 즉, 특정 키 쌍을 사용하여 로그인할 때 설정될 옵션/제한 사항을 구성하는 기능입니다.

관련 정보