При использовании GIT у меня возникают проблемы с использованием GIT поверх SSH , и, поскольку он отлично работает как на работе, так и дома с другим модемом, очевидно, мой домашний модем работает. У меня нет проблем с подключением через HTTP.
Итак, я предполагаю, что это проблема SSH, но я не эксперт в ее непосредственном использовании. Есть ли какая-либо команда, которую я могу запустить, которая устанавливает «тестовое» соединение и позволяет мне точно знать, когда и где по линии возникает проблема?
Практически все «большая» команда (например fetch
, clone
или push
с большим количеством данных) из git
(даже при запуске с -v
) просто «висеть» в середине удаленного подключения без указания относительно того , почему они остановились, так что они бесполезны , ,
Могу ли я узнать больше о том, что происходит в соединении SSH?
источник
GIT_SSH_COMMAND="ssh -v" git clone example
я могу отладить версию SSH, она печатается послеCloning into
сообщения, но не удаетсяgit clone
. После удаленияGIT_SSH_COMMAND
это работает. В конце концов, послужил цели.git -c core.sshCommand="ssh -vvv" pull
git config --global core.sshCommand "ssh -vvv" git clone example
У меня была похожая проблема. Для отладки я добавил строку в свой ssh_config. Вот как я это сделал:
Там вы найдете следующую строку:
В этом случае хозяин есть
github.com
. Теперь вы можете добавить Host-Entry в ваш ssh config:И добавить:
Теперь, используя git-операции, вы должны получить множество отладочных сообщений. Чтобы получить меньше отладочных сообщений, попробуйте использовать
DEBUG1
Для версий GIT> = 2.3.0 см. Ответ @Flimm для более разумного решения.
источник
Читая
man git
, есть некоторые полезные переменные среды, которые вы можете установить,GIT_TRACE_PACKET
иGIT_TRACE
. Например:Немного опоздал к игре, но, надеюсь, это кому-нибудь поможет!
источник
За
man ssh
:Итак, попробуй
ssh -v
. Если это не говорит вам о том, что вам нужно знать, вы можете добавить один или дваv
символа для еще более подробной информации об отладке. Для Github, в частности, попробуйтеssh -vvvT git@github.com
.Обычно, по моему опыту, зависание сеанса SSH во время установки происходит, когда клиент не может завершить выбранный метод аутентификации. Убедитесь, что ваш закрытый ключ находится в нужном месте с нужными разрешениями и совпадает с открытым ключом, который вы дали Github.
источник
push
иpull
на репо без проблем. Но часто это просто «зависает» в середине команды и не будет продолжаться (особенно, когда я передаю большие объемы данных, например большиеclone
илиpush
). Там нет сообщений об ошибках, он просто сидит и не продолжается.Я не вижу способа указать git (1) внешнюю команду для использования для ssh (1), но в качестве обходного пути просто переименуйте / path / to / ssh в /path/to/ssh.orig, создайте оболочку скрипт-обертка / path / to / ssh и добавьте в флаги -v:
Я получаю подробный вывод при выполнении команд git, работающих через транспорт ssh. После завершения отладки удалите скрипт и восстановите /path/to/ssh.orig в / path / to / ssh.
источник
/usr/bin
, рассмотрите возможность установки скрипта-оболочки/usr/local/bin
.GIT_SSH
может указывать на двоичный файл, который вы хотите использовать в Git.