มีตัวเลือกบรรทัดคำสั่งให้รับใบรับรอง SSL โดยอัตโนมัติโดยใช้ commandline SVN ในลักษณะที่หลีกเลี่ยงพรอมต์หรือไม่?
มีตัวเลือกบรรทัดคำสั่งให้รับใบรับรอง SSL โดยอัตโนมัติโดยใช้ commandline SVN ในลักษณะที่หลีกเลี่ยงพรอมต์หรือไม่?
คำตอบ:
ขึ้นอยู่กับเวอร์ชันของ SVN ของคุณ อันล่าสุด (1.6+) อันที่มีตามปกติ--non-interactive
(ซึ่งคุณต้องการใช้เพื่อหลีกเลี่ยงการแจ้งเตือน) และ--trust-server-cert
ที่อาจทำสิ่งที่คุณต้องการ
การใช้--trust-server-cert
จะไม่ยอมรับใบรับรอง SSL อย่างถาวร คุณถาวรสามารถยอมรับใบรับรอง SSL ผ่านบรรทัดคำสั่งโดยใช้การเปลี่ยนเส้นทางการป้อนข้อมูล--non-interactive
และไม่ได้ใช้
นี่คือตัวอย่างสำหรับ Unix / Linux:
svn list [TARGET] << EOF
p
EOF
หมายเหตุ: "p" ด้านบนใช้สำหรับ (p) อย่างถาวร
1.6.6 (r40053)
) น่าเสียดายที่ไม่มีp
ตัวเลือก (อย่างถาวร) เลย และเนื่องจากนี่เป็นกล่องโบราณที่ฉันไม่สามารถอัปเดตได้อีกต่อไป ...
โซลูชันของฉันใช้ความคาดหวัง ไม่ปลอดภัย แต่จะใช้งานได้เมื่อโซลูชันอื่นไม่ทำงาน
#!/usr/bin/expect -f
set svn_username [lindex $argv 0]
set svn_password [lindex $argv 1]
set svn_url [lindex $argv 2]
spawn svn --username=${svn_username} --password=${svn_password} list ${svn_url}
expect "(R)eject, accept (t)emporarily or accept (p)ermanently? "
send -- "p\r"
expect "Store password unencrypted (yes/no)? "
send "no\r"
expect -re "root@.*:\/#"
คุณควรจะสามารถดาวน์โหลดใบรับรองแล้ววางลงในไดเรกทอรีที่เหมาะสม หรือคุณสามารถดาวน์โหลดใบรับรอง CA จากนั้นตั้งค่าตัวเลือกการกำหนดค่าssl-Authority-filesให้ไว้วางใจ CA นั้น
ดูส่วนการจัดการใบรับรอง SSLในหนังสือ