Saat menggunakan GIT, saya memiliki masalah dengan menggunakan GIT lebih dari SSH , dan karena berfungsi dengan baik baik dari kantor, dan di rumah dengan modem yang berbeda, jelas modem rumah saya yang bertindak. Saya tidak punya masalah menghubungkan melalui HTTP.
Jadi, saya berasumsi itu adalah masalah SSH, tapi saya bukan ahli menggunakannya secara langsung. Apakah ada perintah yang bisa saya jalankan yang mengatur koneksi "test", dan beri tahu saya kapan dan di mana sepanjang masalah terjadi?
Hampir semua "lebih besar" perintah (seperti fetch
, clone
atau push
dengan data banyak) dari git
(bahkan ketika menjalankan dengan -v
) hanya "menggantung" di tengah-tengah yang menghubungkan jarak jauh dengan tidak ada indikasi mengapa mereka telah berhenti, sehingga mereka tidak ada gunanya .
Apakah ada cara saya bisa mendapatkan rincian lebih lanjut tentang apa yang terjadi dalam koneksi SSH?
sumber
GIT_SSH_COMMAND="ssh -v" git clone example
Saya bisa men-debug versi SSH, itu dicetak setelahCloning into
pesan, tetapi gagal digit clone
. Setelah saya menghapusnyaGIT_SSH_COMMAND
berfungsi. Pada akhirnya, melayani tujuan.git -c core.sshCommand="ssh -vvv" pull
git config --global core.sshCommand "ssh -vvv" git clone example
Saya punya masalah serupa. Untuk debugging, saya menambahkan baris di ssh_config saya. Inilah cara saya melakukannya:
Di sana Anda akan menemukan garis seperti ini:
Dalam hal ini tuan rumah
github.com
. Sekarang Anda dapat menambahkan Host-Entry di konfigurasi ssh Anda:Dan tambahkan:
Saat menggunakan operasi git, Anda harus mendapatkan banyak pesan debug, sekarang. Untuk mendapatkan pesan debug yang lebih sedikit, coba gunakan
DEBUG1
Untuk versi GIT> = 2.3.0 lihat jawaban dari @Flimm untuk solusi yang lebih cerdas.
sumber
Membaca
man git
, ada beberapa variabel lingkungan berguna yang dapat Anda atur,GIT_TRACE_PACKET
danGIT_TRACE
. Sebagai contoh:Agak terlambat untuk permainan, tapi semoga ini membantu seseorang!
sumber
Per
man ssh
:Jadi, cobalah
ssh -v
. Jika itu tidak memberi tahu Anda apa yang perlu Anda ketahui, Anda dapat menambahkan satu atau duav
untuk informasi debug lebih rinci. Untuk Github khususnya, cobalahssh -vvvT [email protected]
.Biasanya, dalam pengalaman saya, sesi SSH yang menggantung selama pengaturan terjadi ketika klien tidak dapat menyelesaikan metode otentikasi yang dipilih. Pastikan kunci pribadi Anda ada di tempat yang tepat dengan izin yang tepat dan cocok dengan kunci publik yang Anda berikan kepada Github.
sumber
push
/pull
pada repo tanpa masalah. Tetapi seringkali itu hanya "hang" di tengah-tengah perintah dan tidak akan berlanjut (terutama ketika saya mentransfer sejumlah besar data seperti besarclone
ataupush
). Tidak ada pesan kesalahan, hanya ada di sana dan tidak melanjutkan.Saya tidak melihat cara untuk memberitahu git (1) perintah eksternal yang digunakan untuk ssh (1), tetapi sebagai solusi, cukup ganti nama / path / ke / ssh ke /path/to/ssh.orig, buat shell skrip wrapper / path / ke / ssh, dan tambahkan flag -v:
Saya mendapatkan output verbose ketika menjalankan perintah git yang beroperasi melalui transport ssh. Setelah selesai debugging, hapus skrip dan kembalikan /path/to/ssh.orig ke / path / ke / ssh.
sumber
/usr/bin
, pertimbangkan untuk memasukkan skrip wrapper/usr/local/bin
.GIT_SSH
dapat diatur untuk menunjuk ke biner yang Anda ingin Git gunakan.