SSH를 사용하여 원격 시스템에서 쉘 스크립트를 실행하는 방법은 무엇입니까?

SSH를 사용하여 원격 시스템에서 쉘 스크립트를 실행하는 방법은 무엇입니까?

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

원하는 명령과 함께 스크립트를 원격 시스템에 저장하고 로그인한 후 호출하는 것이 더 좋습니다.

관련 정보