
SSH를 통해 세미콜론으로 구분된 여러 명령을 전달하지 않고 bash 스크립트를 사용하여 SSH를 통해 로컬에서 원격 서버로 일부 sudo 권한 명령을 실행하고 싶습니다. 다음 단계를 시도했지만 오류가 발생합니다.
ssh -t user@remoteip 'bash -s' < services.sh
여기서는 -t 옵션을 사용했지만 여전히 오류 메시지가 표시됩니다.
sudo: sorry, you must have a tty to run sudo
답변1
Defaults requiretty
에 댓글이 없을 때 이런 일이 발생할 수 있습니다 /etc/sudoers
.
해결책은 다음 줄을 주석 처리하는 것입니다.
#Defaults requiretty
편집에는 ** 명령 만 /etc/sudoers
사용하는 것을 잊지 마세요.visudo
**이 visudo
명령은 사용자만 실행할 수 있습니다 root
.
답변2
다음을 시도해 볼 수도 있습니다.
ssh -t user@remoteip <<'EOF'
command1
command2
command3
EOF
원하는 명령과 함께 스크립트를 원격 시스템에 저장하고 로그인한 후 호출하는 것이 더 좋습니다.