ssh客户端为什么不指定端口也可以登录成功

比如我在某台机器使用如下命令可以登录成功:

ssh root@9.77.9.126

我知道远端服务器9.77.9.126的ssh服务监听的端口是36000,通过配置文件/etc/ssh/sshd_config可以查看:

#Port 22
Port 36000

问题:为什么我使用ssh命令登录时,不使用-p选项指明端口,也可以登录成功。ssh命令,即ssh客户端是如何知道远端服务器监听的端口是36000的?

为什么CSDN没有自答的功能呢?该问题的答案是:
未指明端口和用户名,则分别由配置文件 ~/.ssh/ssh_config 和 /etc/ssh/ssh_config 中的 Port 和 User 选项决定。如果配置文件未指定,则端口默认为 22 ,用户名默认为当前用户。

参考:https://dablelv.blog.csdn.net/article/details/104616612

你修改完配置文件 重启ssh了吗 你可以netstat -pan|grep port 看一下 你要指定的端口是否被打开。如果没有执行
systemctl restart sshd.service命令。再试试

ssh 客户端不可能知道服务器端监听的端口。
直接ssh root@9.77.9.126 就是走tcp 22端口,代码里写死了。
你能直接ssh 登陆,说明服务器目前生效的就是22这个端口。你看到的/etc/ssh/sshd_config 里面配置的是36000说明必然是没有配置生效。
你可以sudo netstat -anp|grep sshd 看一下当前肯定是在22端口上listen的,而不是3600,要想3600生效,sshd进程必须至少要重启一下

因为linux 服务的配置修改后需要重启服务才生效