OpenConnect: การส่งผ่านรหัสผ่านผู้ใช้เมื่อเรียกใช้การตรวจสอบสิทธิ์


2

ขณะนี้ฉันกำลังใช้คำสั่งต่อไปนี้สำหรับการดำเนินการร้องขอการรับรองความถูกต้องเพื่อรับใบรับรองเซิร์ฟเวอร์ (FINGERPRINT) และOpenConnect-Cookie:

openconnect --authenticate --user=<username> "VPN host"

ด้วยเหตุนี้ฉันต้องใส่รหัสผ่านของฉันในหน้าจอแจ้งเตือนผู้ใช้ในภายหลัง

มีตัวเลือกในการส่งผ่านรหัสผ่านไปยังOpenConnectคำสั่งด้านบนแล้วหรือไม่?

ตัวอย่างเช่นโดยการขยายคำสั่งเช่น ...

openconnect --authenticate --user=<username> password=<password> "VPN host"

...


ความท้าทายคือ:

ผู้ใช้RuiFRibeiroมีความคิดที่จะสะท้อนรหัสผ่านภายในคำสั่ง น่าเสียดายที่นี่ไม่สามารถใช้งานได้ในกรณีของเราเนื่องจากเซิร์ฟเวอร์ให้พรอมต์ผู้ใช้อีกหนึ่งครั้งก่อนที่จะถึงพรอมต์ที่สอง (= พรอมต์รหัสผ่าน)

มันจะเกิดขึ้นเช่นนั้น:

  1. ผู้ใช้คนแรกแจ้ง: เซิร์ฟเวอร์กำลังพูด

    • " โปรดเลือกถ้าคุณต้องการอุโมงค์จราจรทั้งหมดหรือเพียงหนึ่งที่เฉพาะเจาะจง
    • " พิมพ์Tunnel allหรือTunnel company "
  2. พรอมต์ผู้ใช้ที่สอง: เซิร์ฟเวอร์กำลังพูด

    • " กรุณาใส่รหัสผ่านของคุณ "

อย่างที่คุณสามารถเห็นได้ง่ายๆechoจะให้คำตอบที่ผิดกับคำถามที่ผิด :-)


สำหรับexpect-script ที่เป็นไปได้คำขอเซิร์ฟเวอร์จริง (แน่นอน) ก่อนที่จะแทรกข้อความเป็นดังนี้:

  1. GROUP: [tunnel MyCompany|tunnel all]:คำตอบแรก: การแทรกคำตอบควรเป็นtunnel MyCompany

  2. พรอมต์ที่สอง: Password:การแทรกคำตอบควรเป็น123456789


@RuiFRibeiro: คุณหมายถึงการดำเนินการตามคำขอด้วยคำสั่งนี้: echo password | openconnect --authenticate --user=<username> "VPN host"? ฉันควรพิมพ์รหัสผ่านจริงของฉันหรือปล่อยให้เป็น "รหัสผ่าน" หรือไม่?
เดฟ

เพิ่มไปยังคำตอบ
Rui F Ribeiro

คำตอบ:


2

โดยปกติแล้วซอฟต์แวร์ VPN ไม่อนุญาตให้ป้อนรหัสผ่านสำหรับผู้ใช้เนื่องจากถือว่าเป็นความเสี่ยงด้านความปลอดภัย

ทางออกที่เป็นไปได้คือการป้อนรหัสผ่านผ่านไพพ์เช่นเดียวกับใน:

echo -e "Tunnel all\nYourPassword" | openconnect --authenticate --user=<username> "VPN host"

หากเรากำลังพูดถึงคุณสนใจวิธีการเขียนสคริปต์นี้:

  • ต้องแน่ใจว่าเข้าใจความหมายของการรักษาความปลอดภัยของการมีรหัสผ่านของคุณในไฟล์และ จำกัด สิทธิ์การอ่านของไฟล์นั้นเฉพาะกับผู้ใช้ที่ใช้openconnectคำสั่ง

PS แทนที่ YourPassword ด้วยรหัสผ่านจริงของคุณ


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

หากคุณกำลังวางผู้ใช้ในบรรทัดคำสั่งลักษณะของพรอมต์อื่นคืออะไร สองปัจจัยรับรองความถูกต้อง?
Rui F Ribeiro

ในครั้งแรกที่เซิร์ฟเวอร์ถามว่าฉันต้องการรับส่งข้อมูลทั้งหมดผ่าน VPN หรือเฉพาะที่ต้องการ พรอมต์ของผู้ใช้ที่ฉันต้องใส่รหัสผ่านของฉันคือพรอมต์ที่สอง ...
Dave

ฉันจะเอาท์พุท / ข้อความ / การโต้ตอบกับคำถามในสถานที่แรก
Rui F Ribeiro

1
มันใช้งานได้แล้ว! ฉันต้องเขียนรหัสผ่านด้วย'password'แทนที่จะเป็น"password"...
เดฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.