SSH 및 sudo 오류로 원격으로 서비스 다시 시작

SSH 및 sudo 오류로 원격으로 서비스 다시 시작

다음 명령을 사용하여 서비스를 다시 시작하려고 합니다.

ssh username@server "systemctl restart storeapp.service"

하지만 다음과 같은 오류 메시지가 나타납니다.

Failed to stop storeapp.service: Interactive authentication required.

그런 다음 시도했습니다.

ssh -t username@server "systemctl restart storeapp.service"

올바른 사용자 이름으로 인증하지 않고 username@server다른 사용자를 건너뛰기 때문에 실패합니다. Authenticating as : otheruser. SSH 키를 설정했습니다. 어떻게 해야 이 문제를 극복할 수 있나요? 아니면 시스템 관리자 권한 문제입니까?

실행하면 ssh username@server "systemctl status storeapp.service"서비스 상태를 확인할 수 있습니다.

답변1

음,가장 단순한이 문제에 대한 해결책은 다음을 추가하는 것입니다.

<username> ALL = NOPASSWD: /bin/systemctl restart storeapp.service

에 있는 파일의 경우 /etc/sudoers.d다음과 같습니다. /etc/sudoers.d/storeapp대상 서버에 있습니다.

sudo systemctl restart storeapp.service이렇게 하면 비밀번호를 입력하지 않고도 명령을 실행할 수 있습니다 .


실제 예제 사용법ufw
대상 호스트(Ubuntu 18.04):

sudo cat /etc/sudoers.d/ufw 
maulinglawns ALL = NOPASSWD: /bin/systemctl restart ufw

서버에서:

ssh -t maulinglawns@<remote> 'sudo /bin/systemctl restart ufw'
maulinglawns@<remote>'s password: 
Connection to <remote> closed.
echo $?
0

위에서 볼 수 있듯이 메시지가 표시됩니다.한 번(키를 사용하지 않기 때문에) 명령으로는 작동하지 않습니다 sudo. 종료 상태는 ufw비밀번호 없이 성공적으로 다시 시작했음을 알려줍니다. 를 확인하여 이를 확인할 수도 있습니다 /var/log/syslog.


분명히 이것은 다음과 같은 경우에만 작동합니다.ㅏ) root대상 서버에 액세스합니다. 그렇지 않으면비)이것이 가능하거나 허용 가능한지 친한 시스템 관리자에게 문의하십시오. 만약에씨)visudosudoer 파일을 편집/생성할 때 항상 사용하세요!

실행하면 ssh username@server "systemctl status storeapp.service"서비스 상태를 확인할 수 있습니다.

예, status항상 더 높은 전력이 필요한 것은 아닙니다.

관련 정보