![SSH를 사용하여 원격 시스템에서 쉘 스크립트를 실행하는 방법은 무엇입니까?](https://linux55.com/image/115031/SSH%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%9B%90%EA%B2%A9%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%EC%84%9C%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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
원하는 명령과 함께 스크립트를 원격 시스템에 저장하고 로그인한 후 호출하는 것이 더 좋습니다.