88

If I run "git push" with the GIT_TRACE=2 environment variable, I get the following:

09:25:28.098743 git.c:349               trace: built-in: git 'push' 'origin' 'master'
09:25:28.100261 run-command.c:341       trace: run_command: 'ssh' 'git@bitbucket.org' 'git-receive-pack '\''kevinburke/letter.git'\'''

Which is great except sometimes I get this error:

fatal: Could not read from remote repository.

I only get it intermittently so I'm not sure what's going on. I know ssh has a verbose mode:

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

It would be great if I could get git to run that ssh command with -vvv turned on. Is there a way to enable this with environment variables or with config settings?

Kevin Burke
  • 61,194
  • 76
  • 188
  • 305

2 Answers2

128

From Git version 2.3.0, you can use the environment variable GIT_SSH_COMMAND and pass the -v verbose argument like this:

GIT_SSH_COMMAND="ssh -v" git clone <REPO_SSH>

you can also pass -vvv for even more verbose level:

GIT_SSH_COMMAND="ssh -vvv" git clone <REPO_SSH>

(as seen here https://askubuntu.com/a/620985/975188)

note that you can also run this with other git commands, such as git push, git fetch etc.

From Git version 2.10.0, you can even configure this per repo or globally:

git config core.sshCommand "ssh -v"
git pull
git push
Alon Gouldman
  • 3,025
  • 26
  • 29
Flimm
  • 136,138
  • 45
  • 251
  • 267
  • For older git versions (1.8 or before) I posted a recipe here: https://stackoverflow.com/a/57517262/468252 – qneill Aug 15 '19 at 23:17
48

Put this in your ~/.ssh/config file:

Host <git-server-FQDN> LogLevel (QUIET|FATAL|ERROR|INFO|VERBOSE|DEBUG|DEBUG1|DEBUG2|DEBUG3)

Subsequent git commands that interact with the server should produce desired debug output.

Marcin Orlowski
  • 72,056
  • 11
  • 123
  • 141
goddardcm
  • 554
  • 5
  • 7
  • 6
    This doesn't help if you are trying to debug issues with which ssh key is being used. It is better to use the answer from @Flimm (e.g. GIT_SSH_COMMAND="ssh -v" git ... ). – chrish Jun 28 '17 at 01:51