threads / discuss / 47420

SSH port ignored when ssh:// prefix isn't specified

Subject: SSH port ignored when ssh:// prefix isn't specified

## tl;dr

3 messages between Dec 10, 2017 and Dec 10, 2017.

replies: 2people: 3as markdown or json

mqudsi@neosmart.net· Dec 10, 2017, 20:23 UTC · lore
Greetings,

It appears that for non-standard ports to be specified for ssh-based clones/checkouts, the leading "ssh://" prefix must be applied. I am unsure if there's a reason for this or if it is simply an overlooked idiosyncrasy in the parser.

Basically, while `git clone ssh://git@example.com:2222/path` works, the same with the `ssh://` prefix doesn't, and attempts to establish a connection to port 22 instead: `git clone git@example.com:2222/path` (I'm not sure what it will do with the `:2222` should the connection actually succeed).

Mahmoud Al-Qudsi NeoSmart Technologies

Matthieu Moy· Dec 10, 2017, 20:31 UTC · re: mqudsi@neosmart.net · lore

Re: SSH port ignored when ssh:// prefix isn't specified

"mqudsi@neosmart.net" <mqudsi@neosmart.net> writes:
> Basically, while `git clone ssh://git@example.com:2222/path` works, the same
> with the `ssh://` prefix doesn't, and attempts to establish a connection to
> port 22 instead: `git clone git@example.com:2222/path` (I'm not sure what it
> will do with the `:2222` should the connection actually succeed).

I don't see a simple way to distinguish between "I want to connect to port 22 and access directory 2222/path" and "I want to connect to port 2222 and access directory path". So Git chose for you the first option (if you replace 2222 with abcd, it clearly makes sense).

-- 
Matthieu Moy
https://matthieu-moy.fr/
Randall S. Becker· Dec 10, 2017, 21:42 UTC · re: mqudsi@neosmart.net · lore

RE: SSH port ignored when ssh:// prefix isn't specified

On December 10, 2017 3:24 PM Mahmoud wrote:
>It appears that for non-standard ports to be specified for ssh-based
clones/checkouts, the leading "ssh://" prefix must
>be applied. I am unsure if there's a reason for this or if it is simply an
overlooked idiosyncrasy in the parser.
>Basically, while `git clone ssh://git@example.com:2222/path` works, the
same with the `ssh://` prefix doesn't,
>and attempts to establish a connection to port 22 instead: `git clone
git@example.com:2222/path` (I'm not
>sure what it will do with the `:2222` should the connection actually
succeed).

Git is attempting to resolve the repository "2222/path" as it's default behaviour since the ssh method is not specified. This is a situation where the default is ambiguous so while git is choosing the ssh method, it is also choosing repository resolution after the ':' which is also default behaviour.

Cheers, Randall

-- Brief whoami: NonStop&UNIX developer since approximately UNIX(421664400)/NonStop(211288444200000000) -- In my real life, I talk too much.

← back to recent threads