연결 끊김: 인증을 위해 비밀번호를 사용하는 sudo 사용자에 대해 인증 방법이 지원되지 않습니다.

연결 끊김: 인증을 위해 비밀번호를 사용하는 sudo 사용자에 대해 인증 방법이 지원되지 않습니다.

Amazon Linux 2 EC2 인스턴스에서는 cloud-init시작 스크립트 중에 다음 명령을 실행하여 원격 사용자에 대한 암호 인증을 활성화합니다 sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config . 따라서 원격 사용자는 Amazon Linux 2 EC2 인스턴스에 로그인할 때 키 페어를 사용하여 인증하지 않습니다. 사용자 중 한 명이 비밀번호를 입력하지 않고도 명령을 실행할 someuser수 있어야 합니다 .sudo

Cloud-Init 시작 스크립트

전체 cloud-init시작 스크립트는 다음과 같습니다.

/usr/sbin/useradd someuser
echo someuser:some-password | chpasswd
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl restart sshd  

cat << 'EOF' > /etc/sudoers.d/someuser
someuser ALL=(ALL) NOPASSWD: ALL
EOF   


질문

주어진 비밀번호를 사용하여 Putty를 통해 원격으로 로그인하면서 비밀번호 cloud-init를 반복하지 않고 명령을 someuser실행할 수 있으려면 위의 시작 스크립트에서 어떤 특정 구문을 사용해야 합니까 ?sudosomeuser


에러 메시지

다음 스크린샷은 오류 메시지를 보여줍니다.

원격 로그인이 거부되었습니다.


스위칭 오류

위의 현재 구문에서는 someuser공개 키 누락으로 인해 Putty를 사용할 수 없게 됩니다. 그러나 위의 3줄 명령을 주석 처리하면 오류를 제거하여 someuser로그인은 가능하지만 명령을 실행할 수는 없습니다.sudocat


  #cat << 'EOF' > /etc/sudoers.d/someuser   
  #someuser ALL=(ALL) NOPASSWD: ALL   
  #EOF   



문제는 지난 게시물의 처음 세 줄에 있습니다. sudoPutty가 비밀번호 전용 기능을 유지하면서 이 사용자가 비밀번호 없이 업그레이드할 수 있도록 이 3줄을 어떻게 다시 작성, 교체 또는 확장할 수 있습니까 ?

답변1

에서 /etc/sudoers.d/README:

그것은존경받는사용비쥬도, 오류로 인한 변경을 방지하고 새로운 파일 모드(0440 화).

이는 초기화 스크립트가 새로 생성된 파일(/etc/sudoers.d/someuser)의 스키마만 변경하면 된다는 것을 의미합니다.

chmod 0440 /etc/sudoers.d/someuser;

하지만 당신은 해결책을 찾았어요여기더 나은,

echo 'someuser ALL=(ALL:ALL) ALL' | sudo EDITOR='tee -a' visudo

여기서 Visudo는 필요 없이 새 콘텐츠를 추가하는 tee대신 사용됩니다.nano상호 작용, 이것이 내가 놓친 마술이다!

관련 정보