วิธีแสดงรายการคีย์ SSH ที่โหลดใน Windows (ประกวด) [ซ้ำกัน]

ฉันกำลังพยายามสร้างสคริปต์ชุด Windows แบบง่ายที่จะจัดการการเชื่อมต่อกับลูกค้าของเรา ซึ่งรวมถึงอุโมงค์บางแห่งที่ใช้ plink.exe และสายโซ่ถุงเท้า การกระโดดแต่ละครั้งต้องใช้การรับรองความถูกต้องของคีย์ ssh ซึ่งฉันใช้ pageant.exe

ฉันเขียนสคริปต์แต่ละชิ้นไว้ตามความจำเป็น ยกเว้นส่วนการประกวดที่ฉันประสบปัญหา ข้อเท็จจริงที่พบ:

หากฉันเริ่มเพียง pageant.exe มันจะเริ่มต้นตัวแทนการประกวดโดยไม่ต้องโหลดคีย์ SSH ใด ๆ และสคริปต์จะดำเนินการต่อทันที จากนั้นฉันสามารถเรียกใช้ pageant.exe my_key.ppk เพื่อเพิ่มคีย์ลงในการประกวด และข้อความรหัสผ่านจะได้รับแจ้ง แต่สคริปต์จะยังคงดำเนินต่อไปในขณะเดียวกันเช่นกัน ดังนั้นสคริปต์จะยังคงคลิกส่วนที่ล้มเหลว เนื่องจากผู้ใช้จะไม่ระบุข้อความรหัสผ่านจนกว่าจะถึงเวลานั้น

ฉันได้ดูเอกสารการประกวดและพบสวิตช์ CLI บางตัวเช่น -l ที่ควรจะแสดงรายการคีย์ที่โหลด แต่ดูเหมือนว่าจะไม่ทำงานบนเวอร์ชัน Windows ดูเหมือนว่าเวอร์ชัน windows จะยอมรับเฉพาะข้อโต้แย้งในรูปแบบของไฟล์ .ppk เท่านั้น

โดยพื้นฐานแล้วฉันต้องการสร้างฟังก์ชัน "รอ" บางอย่างจนกว่าผู้ใช้จะระบุข้อความรหัสผ่าน มีวิธีใดบ้างที่จะแสดงรายการคีย์ที่โหลดโดยตรงจากการประกวดหรือวิธีการทั่วไปใด ๆ ที่ขอสภาพแวดล้อม Windows สำหรับคีย์ SSH


person Ricky-Brno    schedule 26.11.2018    source แหล่งที่มา


คำตอบ (1)


ผู้ประกวดมี -c switch, ซึ่งคุณสามารถใช้เพื่อส่งคำสั่งที่จะดำเนินการหลังจากโหลดคีย์ส่วนตัวแล้ว:

คุณสามารถจัดให้ Pageant เริ่มต้นโปรแกรมอื่นได้เมื่อเริ่มต้นโปรแกรมเองและโหลดคีย์ใดๆ ที่ระบุในบรรทัดคำสั่ง โปรแกรมนี้ (อาจเป็น PuTTY หรือ WinCVS ที่ใช้ Plink หรืออะไรก็ตาม) จะสามารถใช้คีย์ที่ Pageant โหลดได้

คุณทำได้โดยการระบุตัวเลือก -c ตามด้วยคำสั่ง เช่นนี้

C:\PuTTY\pageant.exe d:\main.ppk -c C:\PuTTY\putty.exe

แม้ว่าโดยทั่วไปแล้ว Pageant จะเป็นเครื่องมือสำหรับการใช้งานเชิงโต้ตอบ ไม่ใช่สำหรับการเขียนสคริปต์ สำหรับการเขียนสคริปต์ ให้ใช้สวิตช์ -i ของ Plink เพื่อจัดเตรียมคีย์ส่วนตัวสำหรับการตรวจสอบสิทธิ์

person Martin Prikryl    schedule 26.11.2018
comment
โอ้ ชัดเจนเลย น่าอายจริงๆเรา. นั่นเป็นกลอุบาย! ขอบคุณมาร์ตินมาก - person Ricky-Brno; 27.11.2018
comment
ควรสังเกตว่า -c เรียกใช้คำสั่งแม้ว่าจะไม่ได้โหลดคีย์ส่วนตัวที่เข้ารหัส เช่น เนื่องจากผู้ใช้ละทิ้งพรอมต์รหัสผ่าน - person bers; 23.12.2020