ข้อดีและข้อเสียของ SSH และ HTTP สำหรับเซิร์ฟเวอร์ git คืออะไร


23

ฉันต้องการตั้งค่าเซิร์ฟเวอร์ git ฉันได้พบวิธีการหลายอย่างโดยละเอียด

บางคนอธิบายการติดตั้งสำหรับ git-server ที่สามารถเข้าถึงได้ผ่าน Ssh ในขณะที่บางคนสามารถเข้าถึงได้ผ่าน HTTP (คนอื่น ๆ ยังแนะนำเครื่องมือเช่น gitolite)

มีข้อดีหรือข้อเสียในการเลือก SSH หรือ HTTP หรือไม่ ดูเหมือนว่าด้วย HTTP การถ่ายโอนไฟล์จะช้าลงอย่างมาก แต่ฉันสงสัยว่ามีสิ่งอื่น ๆ ที่ควรทราบ

อะไรคือวิธีที่พบได้บ่อยที่สุดในการตั้งค่าเซิร์ฟเวอร์ git ถ้ามี

คำตอบ:


22

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

  • ส่วนใหญ่ที่มีประสิทธิภาพและรวดเร็วคือการใช้ Git ภูตพื้นเมือง อย่างไรก็ตามคุณสมบัติเล็ก ๆ น้อย ๆ ที่นำเสนอ: ไม่มีการเข้ารหัสไม่มีการตรวจสอบ เหมาะอย่างยิ่งสำหรับมิเรอร์แบบอ่านอย่างเดียวสาธารณะของที่เก็บของคุณ หากคุณต้องการประสิทธิภาพให้พิจารณาติดตั้งเวอร์ชันล่าสุดแทนเวอร์ชันที่จัดส่งมาพร้อมกับระบบปฏิบัติการของคุณ

  • วิธีที่เข้ากันได้มากที่สุดคือ HTTP มีประสิทธิภาพน้อยกว่า Git ดั้งเดิม แต่ก็ไม่แตกต่างกันมากนัก โปรที่สำคัญที่สุดของ HTTP คือการเจาะไฟร์วอลล์และการสนับสนุนพร็อกซี มันจะปรากฏเป็นทราฟฟิก HTTP ปกติอื่น ๆ สำหรับเกตเวย์ / ไฟร์วอลล์ส่วนใหญ่

  • ความปลอดภัยมากขึ้นคือ HTTPS แต่ก็มีประสิทธิภาพน้อยลงเช่นกัน ต้องมีการกำหนดค่าค่อนข้างบาง คุณจะต้องมีใบรับรอง TLS ที่เชื่อถือได้

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

คำแนะนำของฉันจะขึ้นอยู่กับกรณีการใช้งานที่เก็บของคุณ:

  • ที่เก็บส่วนตัวและกลุ่มผู้ใช้ขนาดเล็ก: SSH

  • ที่เก็บพับลิกจำนวนโคลนใด ๆ แต่กลุ่มผู้ใช้ที่มีสิทธิ์แบบกดขนาดเล็ก: HTTP และ Git (fetch-only) + SSH (+ push-access)

  • ข้อใดข้อหนึ่งข้างต้น แต่มีผู้ใช้จำนวนมากที่มีสิทธิ์ผลักดัน: คุณอาจไม่เข้าใจปรัชญาของ Git

เครือข่ายสาธารณะหรือองค์กรบางแห่งอาจปิดกั้นการรับส่งข้อมูล Git และ SSH หากคุณต้องการเข้าถึงที่เก็บข้อมูลของคุณจริงๆจากทุกที่ให้ลองใช้ทั้ง HTTPS และ SSH


คุณสามารถรับใบรับรอง TLS ฟรีสำหรับ HTTPS ได้จาก startssl.com ได้รับความไว้วางใจจากระบบปฏิบัติการ / เบราว์เซอร์ที่สำคัญทั้งหมด
WhyNotHugo


2

คุณสามารถใช้ HTTPS สำหรับการเข้าถึงแบบอ่านอย่างเดียวหากที่เก็บของคุณเป็นแบบสาธารณะเนื่องจากใช้งานง่ายในฝั่งไคลเอ็นต์ ถ้าไม่ใช่คุณควรใช้ SSH เท่านั้น ไม่ว่าในกรณีใดคุณควรใช้ SSH เพื่อเข้าถึงการเขียนเนื่องจากมีการจัดการการรับรองความถูกต้องที่ดีขึ้น


โอ้มันเป็นไปได้ที่จะผสมทั้งสอง SSH สำหรับการเข้าถึงแบบเขียนและอ่านและ Https สำหรับการเข้าถึงแบบอ่านอย่างเดียวง่ายหรือไม่
Stephane Rolland

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