programing

도커 로그인: '스터브가 잘못된 데이터를 수신했습니다' 자격 증명을 저장하는 중 오류가 발생했습니다.

starjava 2023. 9. 9. 08:50
반응형

도커 로그인: '스터브가 잘못된 데이터를 수신했습니다' 자격 증명을 저장하는 중 오류가 발생했습니다.

먼저 AWS-CLI를 설치하고 이미 "AWS configure"를 사용하여 비밀키를 설정했고 "Docker login" 명령을 사용하여 로그인을 했고 Get-ECR Login Command를 입력하면 성공했습니다.그것은 효과가 있고 나를 위해 결과를 돌려줍니다.

하지만 명령을 사용하려고 하면 다음과 같습니다.

(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 837859123533.dkr.ecr.ap-east-1.amazonaws.com/spring-boot

다음과 같은 오류가 발생했습니다.

자격 증명 저장 오류: 자격 증명 저장 오류 - err: 종료 상태 1, out:error storing credentials - err: exit status 1, out:스텁이 잘못된 데이터를 받았습니다.'

편집: Ethan Davis의 솔루션도 참조하십시오.

C:\Program Files\Docker\Docker\Resources\bin\docker-credential-desktop.exe와 C:\Program Files\Docker\Resources\bin\docker-credential-wincredential-wincred를 제거하는 것을 발견했습니다.exe는 나를 위해 일했습니다. – Ethan Davis '20년 9월 29일 18:10


원본:조엘스터의 코멘트로 연결된 해결책이 저에게 효과가 있었습니다.

한 가지 빠른 해결 방법은 .docker\config.json 파일을 수정하는 것입니다.도커가 파일 시스템을 사용하여 토큰을 저장하도록 다음 행을 제거합니다.

          "credsStore": "wincred"

파일을 열었습니다.c:\Users\sashoalm\.docker\config.json, credsStore 키를 삭제했습니다.그 후 효과는 다음과 같습니다.

type pass.txt | docker login -u AWS --password-stdin https://123123.dkr.ecr.us-west-1.amazonaws.com

그 결과는 다음과 같습니다.

WARNING! Your password will be stored unencrypted in C:\Users\sashoalm\.docker\config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

오늘 현재까지도 이 문제는 여전히 지속되고 있습니다.제가 발견한 것은 아래와 같습니다.

1.) SSO를 인증에 사용하는 동안 이 문제가 나타납니다.AWS용 Azure SSO를 사용하고 있습니다. (https://www.npmjs.com/package/aws-azure-login)

2.) 이유는- SSO에서 반환되는 토큰이 충분히 길기 때문입니다(2550자 이상). 반면 윈도우즈 자격 증명 관리자는 이러한 긴 토큰을 지원하지 않습니다.

3.) ECR 자격 증명 도우미(https://github.com/awslabs/amazon-ecr-credential-helper), 를 사용하면 SSO에서도 작동하지 않는 것 같습니다. https://github.com/awslabs/amazon-ecr-credential-helper/issues/229

하지만 저는 해결책으로 이 단계를 따랐고 저는 Windows를 사용하고 있습니다.

1.) 제거/이름 변경"docker-credential-wincred.exe"파일 위치:"C:\Program Files\Docker\Docker\resources\bin"디렉토리 입니다.

2.) 를 제거"credStore"&"credsStore"도커 구성()의 키C:\Users\PROFILE_NAME\.docker\config.json).

다음과 같은 답변이 있습니다.

WARNING! Your password will be stored unencrypted in C:\Users\sandeep.kumar\.docker\config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
  • 이 문제를 해결하기 위해 티켓 오픈

https://github.com/danieljoos/wincred/issues/18

https://github.com/aws/aws-cli/issues/5636

@Ethan Davis가 언급했듯이 다음 파일을 제거하는 이 도움이 되었습니다.

  • C:\Program Files\Docker\Docker\resources\bin\docker-credential-desktop.exe
  • C:\Program Files\Docker\Docker\resources\bin\docker-credential-wincred.exe

다른 스레드에서 - Mac OS X 솔루션의 도커 로그인 실패가 Mac OS에서 도움이 됩니다.mv ~/.docker ~/.docker.bak

두 가지 솔루션 모두 효과가 있었습니다. 파일 C: \프로그램 파일 \Docker \Docker \Resources \ bin \Docker \credential-desktop.exe와 C: \프로그램 파일 \Docker \Docker \Resources \ bin \docker \credential-wincredential.{"credsStore"를 실행한 후 삭제합니다. "..."} 그럼 나의 구조는 config.json 파일에서 다음과 같습니다.

{
  "auths": {
     "Account_AWS.dkr.ecr.Region_AWS.amazonaws.com": {
         "auth": "My token"
     }
  },
  "HttpHeaders": {
    "User-Agent": "Docker-Client / 19.03.13 (windows)"
  },
  "stackOrchestrator": "swarm"
}

config.json 파일의 "credsStore": "desktop"을 방금 삭제하여 수정했습니다.

의 Docker 의 로 로 의 amazon-ecr-credential-helper가 나란히 설치되어 있습니다.

그래서 당신은 단지 당신의 컴퓨터를 수정해서 활성화하기만 하면 됩니다.config.json일,된에서 %userprofile%/.docker/config.json아니면~/.docker/config.json.

합니다의 합니다.config.json다음 위치:

{
    "credsStore": "ecr-login"
}

또는 내용을 다음과 같이 설정할 수도 있습니다.

{
  "auths": {
    "XXXXXXXXXXXX.dkr.ecr.ap-east-1.amazonaws.com": {
      "auth": ""
    }
  }
}

(여기서 XXXXXXXXXXX는 AWS 계정 번호, ap-east-1은 선택 지역, auth는 비워 둡니다.)

, 을 반복하면,docker login --username AWS XXXXXXXXXXXX.dkr.ecr.ap-east-1.amazonaws.com그럼 이번엔 성공할 겁니다

자세한 설명은 아마존의 ecr-credential-helper 페이지에서 확인할 수 있습니다.

것도 돼서 Helper를 했으므로 도 [ Amazon ECR Docker Credential Helper ] 가 했는데 를 가 했는데 docker login조금도.

choco install amazon-ecr-credential-helper

도커-credential-ecr-login 바이너리를 PATH에 두고 ~/.docker/config.json 파일의 내용을 다음과 같이 설정합니다.

{
    "credsStore": "ecr-login"
}

공식 레포 : https://github.com/awslabs/amazon-ecr-credential-helper

편집:에서 : Windows(윈도우) 을 할 수 .amazon-ecr-credential-helper여기 https://github.com/awslabs/amazon-ecr-credential-helper/releases 에서 여기에 설명된 대로 설치합니다. https://pulseadvancedmedia.co.uk/aws/setting-up-aws-ecr-credential-helper-in-windows/

언급URL : https://stackoverflow.com/questions/60807697/docker-login-error-storing-credentials-the-stub-received-bad-data

반응형