Lorsque j'utilise GIT, j'ai du mal à utiliser GIT sur SSH , et comme cela fonctionne très bien, que ce soit au travail ou à la maison avec un modem différent, c'est évidemment mon modem à la maison qui fonctionne. Je n'ai aucun problème à me connecter via HTTP.
Donc, je suppose que c'est un problème SSH, mais je ne suis pas un expert pour l'utiliser directement. Existe-t-il une commande que je peux exécuter qui établit une connexion "test" et me permet de savoir exactement quand et où le long de la ligne le problème survient?
Presque toutes les commandes "plus grandes" (telles que fetch
, clone
ou push
avec beaucoup de données) de git
(même lorsqu'elles sont exécutées -v
) se "suspendent" juste au milieu d'une connexion à distance, sans indication de la raison pour laquelle elles ont été arrêtées, elles sont donc inutiles. .
Est-il possible d'obtenir plus de détails sur ce qui se passe dans la connexion SSH?
la source
GIT_SSH_COMMAND="ssh -v" git clone example
je peux déboguer la version SSH, elle est imprimée après leCloning into
message, mais échoue àgit clone
. Après je retireGIT_SSH_COMMAND
ça fonctionne. En fin de compte, servi l'objectif.git -c core.sshCommand="ssh -vvv" pull
git config --global core.sshCommand "ssh -vvv" git clone example
J'avais un problème similaire. Pour le débogage, j'ai ajouté une ligne dans mon ssh_config. Voici comment je l'ai fait:
Vous y trouverez une ligne comme celle-ci:
Dans ce cas, l'hôte est
github.com
. Vous pouvez maintenant ajouter une entrée d’hôte dans votre configuration ssh:Et ajouter:
Lors de l’utilisation des opérations git, vous devriez recevoir beaucoup de messages de débogage, maintenant. Pour obtenir des messages de débogage moins importants, essayez d’utiliser
DEBUG1
Pour les versions GIT> = 2.3.0, voir la réponse de @Flimm pour une solution plus intelligente.
la source
En lisant
man git
, il y a des variables environnementales utiles que vous pouvez définir,GIT_TRACE_PACKET
etGIT_TRACE
. Par exemple:Un peu tard dans le match, mais j'espère que cela aidera quelqu'un!
la source
Par
man ssh
:Alors, essaie
ssh -v
. Si cela ne vous dit pas ce que vous devez savoir, vous pouvez ajouter un ou deuxv
s pour des informations de débogage encore plus détaillées. Pour Github en particulier, essayezssh -vvvT [email protected]
.D'après mon expérience, une session SSH est suspendue lors de l'installation lorsque le client ne peut pas exécuter la méthode d'authentification choisie. Vérifiez que votre clé privée est au bon endroit avec les autorisations appropriées et correspond à la clé publique que vous avez fournie à Github.
la source
push
/pull
sur le repo sans aucun problème. Mais souvent, il se "bloque" au milieu de la commande et ne continue pas (surtout lorsque je transfère de grandes quantités de données, telles que des données importantesclone
oupush
). Il n'y a pas de message d'erreur, il reste juste là et ne continue pas.Je ne vois pas comment indiquer à git (1) la commande externe à utiliser pour ssh (1), mais comme solution de contournement, renommez simplement / path / to / ssh en /path/to/ssh.orig, créez un shell script wrapper / path / to / ssh, et ajoutez les drapeaux -v:
Je reçois une sortie commentée en exécutant des commandes git opérant sur un transport ssh. Une fois le débogage terminé, supprimez le script et restaurez /path/to/ssh.orig dans / path / to / ssh.
la source
/usr/bin
, envisagez de placer le script wrapper dans/usr/local/bin
.GIT_SSH
peut être configurée pour pointer vers le binaire que vous voulez que Git utilise.