SSHEXEC ant 작업을 사용하여 원격 Linux 상자에 대해 SSH 스크립트를 실행하고 있습니다.Ant SSH 작업 (SSHEXEC)의 쉘 프롬프트에 응답
사용자 입력을 요구하는 ksh 스크립트를 호출 할 때까지 정상적으로 작동합니다. 스크립트는 현재 사용자 (예 : su)를 변경합니다. 사용자에게 change_request_id 및 change_request_reason을 입력하라는 메시지를 표시합니다. 그래서 쉘에서 일반적으로이 명령을 사용하면 다음과 같을 것이다 :
change_user deploy_user
Please enter the changes request number for doing this: 1234
Please enter the changes request reason: Because I can
<deploy_user>
을하지만 SSHEXEC에서 이러한 명령을 실행할 때, 그것은에 도달 첫 번째 프롬프트 "변경 사항이이 일을 위해 번호를 요청 입력하십시오 :"정지합니다. SSHEXEC을 통해이 프롬프트에 대한 응답을 보내고 있지만, 여전히 여기에 붙어 있습니다.
불행히도 우리는 change_user 쉘 스크립트를 변경하거나 복사 할 수있는 권한이 없습니다.
SSHEXEC을 사용하여 명령 프롬프트 응답을 보내는 방법이 있는지 궁금합니다.
도움을 주시면 감사하겠습니다.
감사합니다. 귀하의 솔루션은 이상하게 보였지만, 시도해 보았을 때 실행중인 스크립트가 현재 사용자를 변경하므로 오류가 발생하기 전에 오류가 발생했습니다. 이 문제 외에도 귀하의 솔루션은 실제로 스크립트 프롬프트에 응답 할 수있게 해줍니다. 나는 이제이 변화하는 사용자 문제를 해결하기위한 문제라고 생각합니다! 건배. – Ben
다른 사용자로 명령을 실행할 수 있도록 sudo를 설정할 수 있습니다. sudo -u otheruser로/path/to/change_request_cmd 접두어를 붙이고/etc/sudoers를 암호없이 허용하도록 구성하십시오. –