쉘 스크립트를 실행할 수 없습니다. 오류가 발생합니다.
SSH를 통해 원격 서버에 연결하고 명령을 실행하는 쉘 스크립트를 작성했습니다.
sudo: no tty present and no askpass program specified
sudo: pam_authenticate: Conversation error
SSH 연결을 수행하려는 사용자는 원격 서버에 대한 sudo 권한을 가지고 있지만 사용자 계정은 시스템에서 로컬로 정의되지 않았습니다[사용자는 중앙 집중식 서비스를 사용하여 인증하고 있습니다].
첫 번째 실수는 이겨냈을지 몰라도
sudo: no tty present and no askpass program specified
두 번째 오류는 스크립트에서 "sudo -S"를 사용하여 지속됩니다.
SSH 비밀번호를 전달하기 위해 sshpass 유틸리티를 사용하고 있습니다.
sshpass -p 'PASSWORD' ssh -n -o StrictHostKeyChecking=no $USER@$IPADDRESS "COMMANDS"
답변1
비밀번호를 요구할 수 ssh -t
있도록 TTY 할당을 강제 하는 데 사용됩니다 .sudo