ฉันพยายามเรียกใช้คำสั่ง SSH แบบนี้ในเอกสารที่นี่:
ssh example.com <<END
sudo /etc/init.d/apache2 reload
END
ซึ่งทำงานได้ตามปกติยกเว้นเมื่อฉันพยายามเรียกใช้บางสิ่งที่ต้องการอินพุตเช่นรหัสผ่านสำหรับ sudo ในกรณีนั้นฉันได้รับข้อความต่อไปนี้:
sudo: no tty present and no askpass program specified
ฉันรู้ว่าฉันสามารถใช้การ-t
ตั้งค่าสถานะใน SSH เพื่อจัดสรรหลอกแบบนี้:
ssh -t example.com "sudo /etc/init.d/apache2 reload"
และมันจะใช้งานได้ แต่เมื่อฉันลองแบบเดียวกันกับเอกสารที่นี่มันใช้งานไม่ได้และฉันจะได้รับข้อผิดพลาดเดียวกันเกี่ยวกับการไม่มี tty อยู่:
ssh -t example.com <<END
sudo /etc/init.d/apache2 reload
END
มีความคิดใดบ้างที่ฉันสามารถทำงานนี้ได้?
นอกจากนี้ในกรณีที่คุณสงสัยว่าทำไมฉันต้องการให้มันทำงานกับเอกสารที่นี่แทนที่จะส่งมันผ่านบรรทัดเดียวกันมันเป็นเพราะคำสั่งอินพุต (อาจมีไม่กี่อัน) มาจากไฟล์การกำหนดค่าที่อ่านโดยสคริปต์ และฉันได้ยินว่ามันหลีกเลี่ยงปัญหาในการหลีกเลี่ยงคำสั่งสำหรับคำพูดคำพูดคู่ ฯลฯ