터미널에서 실행할 때 제대로 작동하는 다음 명령이 있습니다.
ssh someuser@someserver -t "sudo systemctl start someservice"
SSH는 비밀번호가 필요하지 않으며, 공개키로 접속이 가능하고, someuser
비밀번호 없이 sudo 시작도 가능합니다.someservice
위 명령을 crontab에 삽입해야 합니다. 불행히도 실행되지 않았습니다. ssh -t
sudo에 필요한 의사 터미널을 사용하여 문제가 발생한 것으로 생각됩니다. cron을 통해 의사 터미널을 달성할 수 없는 것 같습니다(내 가정, 확실한 증거 없음).
전체적으로 내 목표는 상호 작용 없이 시간 간격으로 명령을 실행하는 것입니다. 기존 방법으로 이를 정렬하는 방법에 대한 아이디어가 있습니까?
대체 직업을 환영합니다.
답변1
문제는 내가 처음에 의심했던 것처럼 ssh -t
.
해결책은 /etc/sudoers
SSH 서버 측에 다음을 추가한 것입니다.
Defaults:someuser !requiretty
나는 그것이 무엇을 requiretty
위한 것인지 말할 수 없습니다. 안전을 위해 전역이 아닌 사용자에 대해서만 비활성화합니다. 다른 어떤 것도 사용자에게 영향을 미치지 않는 것 같습니다.