Действительно подробный способ проверить соединение Git через SSH?

MacBook хорошо поддерживаются в 16,04. См. страница MacBook на Wiki Ubuntu.

можно также посмотреть страница MacBookAir. UEFI хорошо поддерживался GRUB и Ubuntu с тех пор 12.x выпуск. Хотя я предполагаю только 64-разрядный, будет работать.

109
задан 10.10.2017, 18:58

5 ответов

Переменная окружения

В 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 config

Начиная с версии Git 2.10.0, которая будет в репозиториях Ubuntu 17.04, вы можете сохранить эту конфигурацию глобально или репо, как в этом примере:

git config core.sshCommand "ssh -vvv"
git pull
113
ответ дан 10.10.2019, 13:04
  • 1
    Для меня, по крайней мере, Если я делаю это: GIT_SSH_COMMAND="ssh -v" git clone example я могу отладить версию SSH, it' s распечатанный после Cloning into сообщение, но сбой в git clone. После того, как я удалю GIT_SSH_COMMAND, это работает. В конце, которому служат цель. – Jin Kwon 18.01.2016, 17:06
  • 2
    Для одноразового это будет лучше: git -c core.sshCommand="ssh -vvv" pull – Mecki 02.05.2017, 18:24
  • 3
    git config --global core.sshCommand "ssh -vvv" git clone example – Sankaran Srinivasan 05.06.2018, 13:01

Читая man git, вы можете установить некоторые полезные переменные среды GIT_TRACE_PACKET и GIT_TRACE. Например:

GIT_TRACE_PACKET=true git clone ssh://[...]

Немного опоздал к игре, но, надеюсь, это кому-нибудь поможет!

14
ответ дан 10.10.2019, 13:04
  • 1
    Это полезно, но Вы не получаете сообщений о проблемах соединения с SSH. Но если соединение SSH работает, это - способ отладить далее на. – Romeno 14.04.2015, 12:21

Я не вижу способа указать 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.

.
3
ответ дан 10.10.2019, 13:04
  • 1
    Вместо движущихся файлов в /usr/bin, рассмотрите помещение сценария обертки в /usr/local/bin. – Johannes Schaub - litb 23.10.2014, 20:28
  • 2
    По крайней мере, на моей странной установке Windows, переменная среды GIT_SSH может быть установлена указать на двоичный файл, который Вы хотите, чтобы Мерзавец использовал. – Johannes Schaub - litb 22.01.2015, 12:29
  • 3
    Как сказано, Вы определенно don' t хотят изменить исходный ssh файл, но у меня было бы резервирование об обходном решении в/usr/local/. It' s не прозрачный, и это легко затопталось на. ЛУЧШЕ: поместите свой сценарий обходного решения в $HOME/bin и добавьте что новый dir мусорного ведра в Вашем user' s переменная $PATH, перед другими Сегментами контура. И прежде, чем сделать это, I' d проверяют если там isn' t огибающее решение для var that' s еще лучше (этот ответ стар). – Johannes Jendersie 07.11.2018, 19:47

У меня была похожая проблема. Для отладки я добавил строку в свой 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 для более разумного решения. ]

81
ответ дан 10.10.2019, 13:04

За 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.

5
ответ дан 10.10.2019, 13:04
  • 1
    Спасибо за ответ, но я должен был, вероятно, задать вопрос по-другому (так как GitHub doesn' t позволяют прямые соединения SSH как этот). Я отредактировал сообщение и заголовок, но лучше отбросить этого и создать новый вопрос вместо этого? – Jeremiah Willcock 13.09.2013, 00:52
  • 2
    @IQAndreas, GitHub действительно позволяет соединения SSH как этот в том смысле, что этап аутентификации будет выполнен и если проблема действительно происходит на шаге SSH, you' ll видят его тот путь. Если you' ре, находящее, что Вы can' t даже получают это далеко, что-то идет на that' s предотвращение соединения от того, чтобы даже быть сделанным. – Andrew Tomazos 13.09.2013, 13:01
  • 3
    I' m аутентифицируемый очень хорошо, и иногда push / pull на repo без проблем. Но часто это просто " hangs" посреди команды и won' t продолжаются (особенно, когда я передаю большие объемы данных такой как большое clone или push). Нет никаких сообщений об ошибках, это просто находится там и doesn' t продолжаются. – R. Martinho Fernandes 13.09.2013, 23:40

Теги

Похожие вопросы