Score:0

เริ่มบริการใหม่บนเซิร์ฟเวอร์ระยะไกลหลายเครื่องอย่างปลอดภัย

ธง om
Ror

ฉันต้องเขียนสคริปต์เพื่อให้เพื่อนร่วมงานและตัวฉันเองสามารถเริ่มบริการต่างๆ บนเซิร์ฟเวอร์หลายเครื่องได้เราทุกคนเชื่อมต่อกับเซิร์ฟเวอร์ด้วย LDAP ดังนั้นฉันจึงต้องการให้สคริปต์ของฉันเชื่อมต่อผู้ใช้ LDAP ของเรากับเซิร์ฟเวอร์ จากนั้นใช้ sudo เพื่อเริ่มบริการใหม่ (ฉันสามารถเขียนสคริปต์บนเซิร์ฟเวอร์แต่ละเครื่องเพื่อเริ่มบริการทั้งหมดที่จำเป็นใหม่) ตอนนี้สคริปต์เพียงแค่เรียกใช้คำสั่งเช่น

ssh -t user@host "sudo service XXX รีสตาร์ท" 

ปัญหาคือสำหรับแต่ละเซิร์ฟเวอร์ สคริปต์จะขอรหัสผ่านผู้ใช้สองครั้ง (หนึ่งสำหรับการเชื่อมต่อ ssh และสองสำหรับคำสั่ง sudo) การเดาครั้งแรกของฉันคือการแจ้งให้ผู้ใช้เข้าสู่ระบบและรหัสผ่านด้วย read -s -p จากนั้นใช้ตัวแปรเพื่อเข้าสู่ระบบโดยอัตโนมัติด้วย ssh เห็นได้ชัดว่าการคาดหวังคือวิธีการทำเช่นนี้ แต่ฉันไม่พบวิธีแจ้งรหัสผ่านอย่างปลอดภัยในสคริปต์คาดหวังหรือแจ้งในสคริปต์ทุบตีและส่งตัวแปรอย่างปลอดภัยในสคริปต์คาดหวัง

ฉันค้นหาวิธีแก้ปัญหาเช่น pssh, cluster ssh ซึ่งดูเหมือนว่าจะใช้งานได้ แต่ไม่ใช่กับ sudo ฉันเข้าใจว่าวิธีที่ดีที่สุดในการดำเนินการนี้คือการใช้คีย์ ssh แต่เนื่องจากผู้ใช้หลายคนจำเป็นต้องใช้สคริปต์ ฉันจึงต้องการใช้การเข้าสู่ระบบ/รหัสผ่านของ LDAP

fo flag
ดู [ฉันจะทำให้สคริปต์คาดหวังรหัสผ่านได้อย่างไร](https://stackoverflow.com/questions/681928/how-can-i-make-an-expect-script-prompt-for-a-password)
Score:0
ธง om
Ror

ตามที่ Glenn แนะนำในความคิดเห็น วิธีที่ถูกต้องในการทำเช่นนี้คือการใช้ stty :

#รับรหัสผ่าน
stty -ก้อง
send_user -- "รหัสผ่านสำหรับ $user@$host: "
expect_user -re "(.*)\n"
send_user "\n"
เสียงก้องกังวาน
ตั้งค่าผ่าน $expect_out(1,string)

#... ภายหลัง
ส่ง -- "$pass\r"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา