В Git версии 2.3.0 вы можете использовать переменную окружения GIT_SSH_COMMAND
и передать подробный аргумент -v
, например:
GIT_SSH_COMMAND="ssh -v" git clone example
Подробно, сделайте это -vvv
:
GIT_SSH_COMMAND="ssh -vvv" git clone example
Начиная с версии Git 2.10.0, которая будет в репозиториях Ubuntu 17.04, вы можете сохранить эту конфигурацию глобально или репо, как в этом примере:
git config core.sshCommand "ssh -vvv"
git pull
Читая man git
, вы можете установить некоторые полезные переменные среды GIT_TRACE_PACKET
и GIT_TRACE
. Например:
GIT_TRACE_PACKET=true git clone ssh://[...]
Немного опоздал к игре, но, надеюсь, это кому-нибудь поможет!
Я не вижу способа указать git (1) внешнюю команду для использования в ssh (1), но в качестве обходного пути просто переименуйте / path / to / ssh в /path/to/ssh.orig, создайте оболочку сценария оболочки / path / to / ssh и добавьте флаги -v:
$ sudo mv /usr/bin/ssh /usr/bin/ssh.orig
$ sudo vim /usr/bin/ssh
$ cat /usr/bin/ssh
#!/bin/sh
if [ -x /usr/bin/ssh.orig ]; then
exec /usr/bin/ssh.orig -v -v -v "${@}"
fi
$ sudo chmod a+x /usr/bin/ssh
Я получаю подробный вывод при выполнении команд git, работающих с транспортом ssh. После завершения отладки удалите скрипт и восстановите /path/to/ssh.orig в /path/to/ssh.
./usr/bin
, рассмотрите помещение сценария обертки в /usr/local/bin
.
– Johannes Schaub - litb
23.10.2014, 20:28
GIT_SSH
может быть установлена указать на двоичный файл, который Вы хотите, чтобы Мерзавец использовал.
– Johannes Schaub - litb
22.01.2015, 12:29
У меня была похожая проблема. Для отладки я добавил строку в свой ssh_config. Вот как я это сделал:
git remote -v
Там вы найдете строку, подобную этой:
origin git@github.com:me/test.git (fetch)
origin git@github.com:me/test.git (push)
В этом случае хост - github.com
. Теперь вы можете добавить Host-Entry в вашу конфигурацию ssh:
vim ~/.ssh/config
И добавить:
Host github.com
LogLevel DEBUG3
При использовании операций git вы должны получить множество отладочных сообщений. Чтобы получить меньше сообщений отладки, попробуйте использовать DEBUG1
. Для версий GIT> = 2.3.0 см. Ответ из @Flimm для более разумного решения. ]
За man ssh
:
-v Verbose mode. Causes ssh to print debugging messages about its progress. This
is helpful in debugging connection, authentication, and configuration problems.
Multiple -v options increase the verbosity. The maximum is 3.
Итак, попробуйте ssh -v
. Если это не говорит вам о том, что вам нужно знать, вы можете добавить один или два v
для еще более подробной информации об отладке. В частности, для Github попробуйте ssh -vvvT git@github.com
.
По моему опыту, зависание сеанса SSH во время установки происходит, когда клиент не может завершить выбранный метод аутентификации. Убедитесь, что ваш закрытый ключ находится в нужном месте с нужными разрешениями и совпадает с открытым ключом, который вы дали Github.
push
/ pull
на repo без проблем. Но часто это просто " hangs" посреди команды и won' t продолжаются (особенно, когда я передаю большие объемы данных такой как большое clone
или push
). Нет никаких сообщений об ошибках, это просто находится там и doesn' t продолжаются.
– R. Martinho Fernandes
13.09.2013, 23:40
GIT_SSH_COMMAND="ssh -v" git clone example
я могу отладить версию SSH, it' s распечатанный послеCloning into
сообщение, но сбой вgit clone
. После того, как я удалюGIT_SSH_COMMAND
, это работает. В конце, которому служат цель. – Jin Kwon 18.01.2016, 17:06git -c core.sshCommand="ssh -vvv" pull
– Mecki 02.05.2017, 18:24git config --global core.sshCommand "ssh -vvv" git clone example
– Sankaran Srinivasan 05.06.2018, 13:01