Apa pro dan kontra SSH dan HTTP untuk server git?

23

Saya ingin mengatur server git. Saya telah menemukan beberapa caranya, detailnya bagus.

Beberapa menggambarkan instalasi untuk git-server yang dapat diakses melalui Ssh, sementara yang lain, dapat diakses melalui HTTP. (Yang lain bahkan menyarankan alat seperti gitolite).

Apakah ada pro atau kontra memilih lebih dari SSH atau HTTP? Tampaknya melalui HTTP, transfer file jauh lebih lambat, tetapi saya ingin tahu apakah ada hal lain yang perlu diingat.

Apa cara paling umum untuk menyiapkan server git, jika ada?

Stephane Rolland
sumber

Jawaban:

22

Saat Anda bertanya apa cara yang paling umum, saya pikir lebih baik untuk melihat situasi Anda dan ingat bahwa satu protokol tidak mengecualikan yang lain - tambahkan lebih banyak protokol akses nanti jika Anda membutuhkannya.

  • Paling efisien dan cepat adalah dengan menggunakan daemon Git asli. Namun, sedikit fitur yang ditawarkan: tidak ada enkripsi, tidak ada otentikasi. Ideal untuk cermin read-only publik dari repositori Anda. Jika Anda membutuhkan kinerja, pertimbangkan juga untuk menginstal versi terbaru daripada versi yang dikirimkan dengan OS Anda.

  • Cara yang paling kompatibel adalah HTTP. Kurang efisien daripada Git asli, tetapi tidak banyak perbedaan juga. Pro HTTP paling penting adalah penetrasi firewall dan dukungan proxy. Ini muncul sebagai lalu lintas HTTP biasa lainnya untuk sebagian besar gateway / firewall.

  • Lebih aman adalah HTTPS, tetapi mau tidak mau juga kurang efisien. Membutuhkan beberapa konfigurasi. Anda juga akan memerlukan sertifikat TLS tepercaya.

  • Keamanan serupa, tetapi cara yang lebih umum adalah menggunakan SSH. Ini adalah default jika tidak ada protokol yang ditentukan pada baris perintah. Didukung oleh SSH, ia menyediakan enkripsi yang kuat dan otentikasi kata sandi dan kunci. Meskipun tidak konvensional, dimungkinkan untuk mengizinkan akses anonim dengan cara ini juga.

Saran saya akan tergantung pada kasus penggunaan repositori Anda:

  • repositori pribadi & grup pengguna kecil: SSH

  • repositori publik, jumlah klon dalam jumlah berapa pun, tetapi sekelompok kecil pengguna dengan hak istimewa push: HTTP dan Git (hanya-ambil) + SSH (+ akses-push)

  • salah satu di atas, tetapi dengan sejumlah besar pengguna yang memiliki hak istimewa: Anda mungkin tidak memahami filosofi Git.

Beberapa jaringan publik atau perusahaan mungkin memblokir lalu lintas Git dan SSH. Jika Anda benar-benar perlu mengakses repositori Anda dari mana saja , pertimbangkan untuk menggunakan HTTPS dan SSH.

gertvdijk
sumber
Anda bisa mendapatkan sertifikat TLS gratis untuk HTTPS dari startssl.com. Dipercayai oleh semua OS / Peramban utama.
WhyNotHugo
2
Atau letsencrypt.org
Tereza Tomcova
2

Anda dapat menggunakan HTTPS untuk akses hanya baca, jika repositori Anda bersifat publik karena mudah digunakan di sisi klien. Jika tidak, Anda hanya harus menggunakan SSH. Dalam hal apa pun Anda harus menggunakan SSH untuk akses tulis karena memiliki manajemen otentikasi yang lebih baik.

Christopher Perrin
sumber
oh, jadi apakah mungkin untuk mencampur keduanya? SSH untuk akses tulis dan baca, dan Https untuk akses mudah-baca saja?
Stephane Rolland
Ya itu. Seharusnya tidak banyak masalah.
Christopher Perrin