- cross-posted to:
- programming@programming.dev
- cross-posted to:
- programming@programming.dev
cross-posted from: https://programming.dev/post/9907720
The SSH port is 22. This is the story of how it got that port number. And practical configuration instructions.
Why is it that the switch on ssh is -p but in scp/sftp it is -P?
This has caused me a real headache in the past as ssh doesn’t throw an error message when you use a switch like “ssh -P 8080”
At a guess, it’s because the function of preserving file dates and times is more likely than setting the port to something other than the default, so it gets the lowercase character, whereas ssh doesn’t do anything with files so the port option gets the lowercase character.
The inconsistency is annoying though. I wonder if they could make ssh’s
-p
option case insensitive so-P
works across the board. (Maybe-P
is reserved for some unknown future purpose?)A work-around would be introducing long options and having
--port
be the option’s long name across all the commands, but then, that comes with its own problems.If this is something you run into often, it’s likely still only for a limited number of servers?
ssh
andscp
both respect.ssh/config
, and I suspect (but haven’t tested) thatsftp
does too. If you add something like this to that file:Host host1 host2 Port 8080
then SSH connections to hosts named in that first line will use port 8080 by default and you can leave off the
-p
/-P
when contacting those hosts. You can add multiple such sections if you have other hosts that require different ports, of course.