git push con ssh remote falla a less que sea detallado

Tengo un git (versión 2.1.2 ) con un control remoto ssh :

 $ git remote -v origin ssh://dettorer@dettorer.net:/home/dettorer/my_project (fetch) origin ssh://dettorer@dettorer.net:/home/dettorer/my_project (push) 

Lo cual falla al presionar:

 $ git push Bad port '' fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

A less que … Uso el interruptor --verbose :

 $ git push --verbose Pushing to ssh://dettorer@dettorer.net:/home/dettorer/my_project Enter passphrase for key '/home/dettorer/.ssh/id_rsa': Counting objects: 7, done. ... To ssh://dettorer@dettorer.net:/home/dettorer/my_project e633fe9..5d2e9de master -> master updating local tracking ref 'refs/remotes/origin/master' 

Aumenté el nivel de logging ssh como se insinuó en esa respuesta , pero la salida para git push (sin --verbose ) era exactamente la misma.

¿De dónde podría venir?

Como nwinkler sugirió, aquí está la salida de los dos commands con GIT_TRACE=2 :

 $ GIT_TRACE=2 git push 13:42:33.002392 git.c:349 trace: built-in: git 'push' 13:42:33.033594 run-command.c:341 trace: run_command: 'ssh' '-p' '' 'dettorer@dettorer.net' 'git-receive-pack '\''/home/dettorer/my_project'\''' Bad port '' fatal: Could not read from remote repository. Please make sure you have the correct access rights $ GIT_TRACE=2 git push -v 13:42:39.929236 git.c:349 trace: built-in: git 'push' '-v' Pushing to ssh://dettorer@dettorer.net:/home/dettorer/my_project 13:42:39.944837 run-command.c:341 trace: run_command: 'ssh' 'dettorer@dettorer.net' 'git-receive-pack '\''/home/dettorer/my_project'\''' Enter passphrase for key '/home/dettorer/.ssh/id_rsa': 

Entonces, a less que use --verbose , de hecho hay una opción extra '-p' con un argumento vacío.

EDITAR: esto se está volviendo más oscuro:

 $ git push origin Bad port '' fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. $ git remote add test test $ git push origin Enter passphrase for key '/home/dettorer/.ssh/id_rsa': $ git remote remove test $ git push origin Bad port '' fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

OK, después de ver tus comentarios, estoy bastante seguro de que sé lo que está mal.

¿Puedes tratar de cambiar tu URL remota a esto?

ssh://dettorer@dettorer.net/home/dettorer/my_project

Tienes dos puntos extra allí, lo que parece estar causando el problema del puerto adicional. No sé por qué ejecutarlo con -v soluciona el problema.

La ayuda de git muestra que el siguiente es el formatting compatible para el protocolo ssh :

ssh://[user@]host.xz[:port]/path/to/repo.git/

Como puede ver, los dos puntos solo son necesarios si necesita establecer un puerto. Déjelo apagado si desea usar el puerto estándar.

Nota: con Git 2.3.7 (publicado ayer, 27 de abril de 2015), este error " Bad port '' " ya no existe.

Ver commit ad34ad6 , desde commit 6b6c5f7 (por Torsten Bögershausen tboegi )

connect.c : ignore dos puntos extra después del nombre de host

Ignore un ' : ' extra al final del nombre de host en URL como " ssh://example.com:/path/to/repo "

El colon está destinado a separar un número de puerto del nombre de host.
Si el puerto está vacío, se deben ignorar los dos puntos, ver RFC 3986.

Ha estado funcionando para URL con el esquema ssh:// , pero se ha roto involuntariamente en 86ceb3, "allow ssh://user@[2001:db8::1]/repo.git " (Git 2.3.4).