Saya mencoba menjalankan git clone
tanpa ssh memeriksa kunci host repositori. Saya bisa melakukannya dari ssh seperti itu:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no user@host
Apakah ada cara untuk meneruskan opsi ssh yang sama ke perintah git clone?
Sunting: Ada batasan yang tidak dapat saya ubah ~/.ssh/config
atau file lain di mesin itu.
Jawaban:
Tambahkan mereka ke
~/.ssh/config
:The
Host
masuk adalah apa yang akan Anda tentukan pada baris perintah, danHostName
adalah nama host yang benar. Mereka bisa sama, atauHost
entri bisa menjadi alias. TheUser
entri digunakan jika Anda tidak menentukanuser@
pada baris perintah.Jika Anda harus mengonfigurasi ini di baris perintah, setel
GIT_SSH
variabel lingkungan untuk mengarah ke skrip dengan opsi Anda di dalamnya.sumber
GIT_SSH
variabel lingkungan.Git 2.3 yang baru dirilis mendukung variabel baru "GIT_SSH_COMMAND" yang dapat digunakan untuk menentukan perintah DENGAN parameter.
sumber
git clone
atau apakah kodenya benar?Opsi lain yang dibuat untuk menentukan kunci yang berbeda adalah
git config core.sshCommand
dengan git 2.10 + (Q3 2016).Ini adalah sebuah alternatif untuk variabel lingkungan yang dijelaskan dalam Boris 's jawaban )
Lihat commit 3c8ede3 (26 Jun 2016) oleh Nguyễn Thái Ngọc Duy (
pclouds
) .(Digabung oleh Junio C Hamano -
gitster
- di commit dc21164 , 19 Jul 2016)Artinya
git clone
dapat menjadi:Jika Anda ingin menerapkannya untuk semua repo, seperti yang ditambahkan user1300959 di komentar , Anda akan menggunakan konfigurasi global.
sumber
git clone
- dalam hal ini Anda mungkin ingin mengkonfigurasi perintah git ssh secara global:git config --global core.sshCommand ...
Berikut adalah contoh rumit cara meneruskan argumen ssh dengan menggunakan variabel GIT_SSH:
Catatan: Baris di atas adalah baris perintah terminal yang harus Anda tempelkan ke terminal Anda. Ini akan membuat file ssh , membuatnya dapat dieksekusi dan mengeksekusinya.
Jika Anda ingin memberikan opsi kunci privat, silakan periksa Bagaimana cara memberi tahu git kunci privat mana yang harus digunakan? .
sumber
$*
dan"$@"
sepertinya berhasil. Biasanya saya gunakan"$@"
, karena yang lain sepertinya usang. Apakah ada alasan untuk memilih$*
dalam kasus ini?Konfigurasi tingkat repositori tanpa memengaruhi pengaturan tingkat sistem
Menggabungkan jawaban yang sudah tersedia, saya memilih langkah-langkah di bawah ini. Ini memastikan bahwa perubahan konfigurasi tidak berdampak pada level mesin, tetapi hanya untuk repositori yang sedang dikerjakan. Ini diperlukan dalam kasus saya karena skrip saya harus dijalankan pada agen Bamboo bersama.
1. Klon repositori yang menggunakan
GIT_SSH_COMMAND
pendekatan.2. Setelah di-clone, masuk ke direktori repositori.
3. Atur
core.sshCommand
konfigurasi sehingga semua panggilan selanjutnya dapat dijalankan dengan perintah git seperti biasa, tetapi secara internal menggunakan opsi git yang disediakan.sumber
core.sshCommand
, yang saya sebutkan di atas. Suara positif.Saya pikir perbarui git ke versi> = 2.3 dan gunakan
GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" git clone user@host
adalah opsi taruhan, tetapi jika tidak memungkinkan, @ josh-lee memberikan opsi yang baik, tetapi tolong, perbarui jawaban Anda dengan memasukkan file konfigurasi ssh.sumber
Masalah ini telah diperbaiki dengan melakukan langkah-langkah ikuti di mesin Window: -
Buat file konfigurasi di bawah folder C: \ Users \ username.ssh.
tambahkan baris berikut ke file konfigurasi.
lalu coba lagi.
sumber