cb-spider icon indicating copy to clipboard operation
cb-spider copied to clipboard

[Alibaba] key permission denied when ssh logging

Open powerkimhub opened this issue 2 years ago • 4 comments

동일 키 활용한 접근 시도시 현황이 다음과 같습니다.

  • cb-user 계정 접근시 permission 오류

    $ ssh -i keypair-01.pem [email protected]
    Permission denied (publickey).
    
  • root 계정 접근시 성공

    $ ssh -i keypair-01.pem [email protected]
    

powerkimhub avatar Apr 25 '22 08:04 powerkimhub

  • 관련 정보는 다음과 같습니다.
    CONN_CONFIG=alibaba-beijing-config
    IMAGE_NAME=ubuntu_18_04_x64_20G_alibase_20200220.vhd
    SPEC_NAME=ecs.t5-lc1m2.small
    

powerkimhub avatar Apr 25 '22 08:04 powerkimhub

@powerkimhub 중국 리전을 사용할 수 없어서 도쿄 리전의 ecs.t6-c2m1.large 스펙으로 테스트 해봤는데 ubuntu_18_04_x64_20G_alibase_20200220.vhd 이미지 파일의 경우 루트 키 파일을 정상적으로 복제할 수 없어서 0바이트로 복제가됩니다.

가장 최신 버전인 ubuntu_18_04_x64_20G_alibase_20220322.vhd 이미지에서는 아무런 문제가 없었으며 자주 사용했었던 ubuntu_18_04_x64_20G_alibase_20210420.vhd 파일에서도 정상 동작했습니다. 테스트에 사용한 ubuntu_18_04_x64_20G_alibase_20200220.vhd 이미지가 너무 구버전이라 cloud-init 기능이 정상적으로 지원되지 않는 것 같습니다. 2021.04.20 이후의 버전을 사용하면 문제 없을 듯 싶네요.

dev4unet avatar Apr 27 '22 01:04 dev4unet

@seokho-son @jihoon-seo

  • Alibaba 이미지 버전과 cb-user 계정 지원 관련 참고하세요.

powerkimhub avatar Apr 28 '22 08:04 powerkimhub

@dev4unet @dogfootman @choryang (@seokho-son @jihoon-seo)

  • Cloud-Barista에 사용될 수 없는 이미지들이 많을 듯하여
    • 아래와 같이 전용 스크립트 제안 드립니다.
  • 제안 내용 검토 부탁 드리며, 큰 무리가 없다면 추가 시험 및 반영 부탁 드립니다.

[이슈 현황]

  • Alibaba는 cb-user 생성을 위해서 cloud-init 공통 스크립트를 사용하고 있습니다.
    • 위치: cb-spider/cloud-driver-libs/.cloud-init-common/cloud-init
    • 스크립트:
      1 #!/bin/bash
      2 #### add Cloud-Barista user
      3 useradd -s /bin/bash cb-user -rm -G sudo;
      4 mkdir /home/cb-user/.ssh;
      5 curl -s `cloud-init query subplatform | sed 's/metadata (//g' | sed 's/)//g'`/latest/meta-data/public-keys/0/openssh-key > /home/cb-user/.ssh/authorized_keys;
      6 chown -R cb-user:cb-user /home/cb-user;
      7 echo "cb-user ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers;
      
  • 5 line에서 cloud-init query subplatform 명령은 VM의 메타정보를 제공하는 subplatform IP(CSP마다 다름)를 얻어오는 명령입니다.
  • 여기서 cloud-init query 명령의 사용 방법이 cloud-init old 버전에서는 다른 형태입니다. (오류 발생 원인)
    • ubuntu_18_04_x64_20G_alibase_20220322.vhd image: cloud-init 19.1.16
    • ubuntu_18_04_x64_20G_alibase_20200220.vhd image: cloud-init 0.7.6a13

[개선 제안]

  • Alibaba가 사용하는 cloud-init script를 subplatform IP를 포함한 전용 스크립트로 분리 운영
  • Alibaba 전용 스크립트 제안 위치 및 스크립트
    • 제안 위치: cb-spider/cloud-driver-libs/.cloud-init-alibaba/cloud-init
    • 스크립트:
      #!/bin/bash
      #### add Cloud-Barista user
      useradd -s /bin/bash cb-user -rm -G sudo;
      mkdir /home/cb-user/.ssh;
      curl http://100.100.100.200/latest/meta-data/public-keys/0/openssh-key > /home/cb-user/.ssh/authorized_keys;
      chown -R cb-user:cb-user /home/cb-user;
      echo "cb-user ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers;
      
  • old and new 이미지 이용한 VM의 cb-user@SSH login 시험
    • ubuntu_18_04_x64_20G_alibase_20220322.vhd image: 성공
    • ubuntu_18_04_x64_20G_alibase_20200220.vhd image: 성공

[참고]

  • https://www.alibabacloud.com/help/en/elastic-compute-service/latest/install-cloud-init
  • https://cloudinit.readthedocs.io/en/latest/topics/datasources/aliyun.html

[Note]

  • 향후 사용자 image를 지원할 경우 사용자 image에 cloud-init 포함 여부 및
    • subplatform 운영 여부, IP 설정 등이 이슈가 될 수 있음
  • cb-user 계정을 사용자 image에 사전 추가하도록 가이드 하는 방법도 있겠음
  • 이는 Alibaba 뿐만 아니라 전체 고려 사항임 (추후 필요시 재고려)

powerkimhub avatar Apr 30 '22 13:04 powerkimhub

  • 제안 방법 cb-spider/cloud-driver-libs/.cloud-init-alibaba/cloud-init으로 적용됨

powerkimhub avatar Nov 30 '22 11:11 powerkimhub