GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membuat git tidak meminta kata sandi saat menarik?

Ada beberapa opsi, tergantung pada kebutuhan Anda, khususnya kebutuhan keamanan Anda. Untuk HTTP dan SSH, ada akses tanpa kata sandi, atau kata sandi diperlukan.

HTTP

==============

Tanpa Kata Sandi

Berguna untuk persyaratan pengambilan saja, secara default push dinonaktifkan. Sempurna jika kloning anonim adalah tujuannya. Anda seharusnya tidak mengaktifkan push untuk jenis konfigurasi ini. Halaman manual untuk git-http-backend berisi informasi yang baik, salinan online di http://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html. Ini memberikan contoh cara mengonfigurasi apache untuk menyediakan ini.

Pengguna/kata sandi di .netrc atau url tersemat

Di mana file .netrc digunakan dalam bentuk:

machine <hostname> login <username> password <password>

Dan url tersemat akan berbentuk:

http://user:[email protected]/repo

Karena git tidak akan melakukan autentikasi untuk Anda, Anda perlu mengonfigurasi server web seperti apache untuk melakukan autentikasi, sebelum meneruskan permintaan ke alat git. Perlu diingat juga bahwa menggunakan metode yang disematkan merupakan risiko keamanan, bahkan jika Anda menggunakan https karena ini adalah bagian dari url yang diminta.

Jika Anda ingin dapat menarik non-interaktif, tetapi mencegah pengguna anonim mengakses repo git, ini harus menjadi solusi yang cukup ringan menggunakan apache untuk autentikasi dasar dan sebaiknya file .netrc untuk menyimpan kredensial. Sebagai gotcha kecil, git akan mengaktifkan akses tulis setelah autentikasi digunakan, jadi gunakan http anonim untuk hanya-baca, atau Anda harus melakukan beberapa konfigurasi tambahan jika ingin mencegah pengguna non-interaktif memiliki akses tulis .

Lihat:

  • httpd.apache.org/docs/2.4/mod/mod_auth_basic.html untuk informasi lebih lanjut tentang mengonfigurasi autentikasi dasar
  • www.kernel.org/pub/software/scm/git/docs/git-http-backend.html untuk beberapa contoh konfigurasi apache yang diperlukan.


SSH

==============

Tanpa Frasa Sandi

Terbuka untuk masalah keamanan, karena siapa pun yang dapat memperoleh kunci pribadi ssh sekarang dapat memperbarui repo git jarak jauh sebagai pengguna ini. Jika Anda ingin menggunakan ini secara non-interaktif, saya sarankan menginstal sesuatu seperti gitolite untuk membuatnya sedikit lebih mudah untuk memastikan bahwa mereka yang memiliki kunci pribadi ssh hanya dapat menarik dari repo, dan memerlukan pasangan kunci ssh yang berbeda untuk memperbarui repo.

Lihat github.com/sitaramc/gitolite/ untuk informasi lebih lanjut tentang gitolite.

stromberg.dnsalias.org/~strombrg/ssh-keys.html - untuk membuat kunci ssh tanpa kata sandi:Mungkin juga ingin mencakup pengelolaan beberapa kunci ssh:www.kelvinwong.ca/2011/03/30/multiple-ssh-private- key-identityfile/

Dilindungi fase sandi

Dapat menggunakan ssh-agent untuk membuka kunci per sesi, hanya sangat berguna untuk pengambilan interaktif dari git. Karena Anda menyebutkan root dan hanya berbicara tentang melakukan 'git pull', sepertinya use case Anda tidak interaktif. Ini adalah sesuatu yang mungkin lebih baik digabungkan dengan gitolite (github.com/sitaramc/gitolite/).

Ringkasan

==============

Menggunakan sesuatu seperti gitolite akan mengabstraksi banyak konfigurasi untuk pengaturan tipe SSH, dan sangat disarankan jika Anda merasa memiliki repositori tambahan atau perlu menentukan tingkat akses yang berbeda. Pencatatan dan auditnya juga sangat berguna.

Jika Anda hanya ingin menarik melalui http, halaman manual git-http-backend harus berisi informasi yang cukup untuk mengonfigurasi apache untuk melakukan yang diperlukan.

Anda selalu dapat menggabungkan http anonim untuk klon/tarik, dengan akses ssh yang dilindungi frasa sandi yang diperlukan untuk akses penuh, dalam hal ini tidak perlu menyiapkan gitolite, Anda cukup menambahkan kunci publik ssh ke ~/. ssh/authorized_keys.


Lihat jawaban untuk pertanyaan ini. Anda harus menggunakan akses SSH alih-alih HTTPS/GIT dan mengautentikasi melalui kunci publik SSH Anda. Ini juga harus berfungsi secara lokal.


Linux
  1. Cara Menonaktifkan Login SSH Dengan Kata Sandi

  2. Bagaimana cara memasukkan kata sandi ke perintah git pull?

  3. proxy http melalui ssh, bukan kaus kaki

  1. Bagaimana cara membuat file TIDAK dapat dimodifikasi?

  2. SSH tidak meminta kata sandi, memberikan izin langsung ditolak

  3. bagaimana cara menonaktifkan login SSH dengan kata sandi untuk beberapa pengguna?

  1. Cara Mengatur Login SSH Tanpa Kata Sandi

  2. Cara Membuat Sudo Mengingat Kata Sandi Lebih Lama

  3. Ssh – Bagaimana Ssh Meminta Kata Sandi Saat Semua Input dan Output Dialihkan?