cb-spider
cb-spider copied to clipboard
[Alibaba] key permission denied when ssh logging
동일 키 활용한 접근 시도시 현황이 다음과 같습니다.
-
cb-user 계정 접근시 permission 오류
$ ssh -i keypair-01.pem [email protected] Permission denied (publickey).
-
root 계정 접근시 성공
$ ssh -i keypair-01.pem [email protected]
- 관련 정보는 다음과 같습니다.
CONN_CONFIG=alibaba-beijing-config IMAGE_NAME=ubuntu_18_04_x64_20G_alibase_20200220.vhd SPEC_NAME=ecs.t5-lc1m2.small
@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 이후의 버전을 사용하면 문제 없을 듯 싶네요.
@seokho-son @jihoon-seo
- Alibaba 이미지 버전과 cb-user 계정 지원 관련 참고하세요.
@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 뿐만 아니라 전체 고려 사항임 (추후 필요시 재고려)
- 제안 방법
cb-spider/cloud-driver-libs/.cloud-init-alibaba/cloud-init
으로 적용됨