ssh有两层含义: 一是SSH(Secure Shell),由 IETF 的网络小组(Network Working Group)所制定的应用层安全外壳协议,用于专为远程登录会话和其他网络服务提供安全性的协议。 二是基于SSH协议实现的远程登录工具。服务端程序为sshd,客户端为ssh命令。
因此ssh的默认端口配置分为服务端与客户端。
(1)登录服务器,打开sshd_config文件。
vi /etc/ssh/sshd_config
(2)找到Port 22,在下方插入一行想要的端口号,注意不要跟现有端口号重复。
...
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
Port 22
Port 36000
...
ssh服务程序默认监听端口是22,上面保留了22端口,防止因为各种权限和配置问题,导致连22端口不能访问。等一新配置的端口生效,再关闭22端口。 (3)重启ssj服务。
systemctl restart sshd
(4)尝试通过新端口远程登录,或者进入该服务器直接本地访问SSH。
ssh -p36000 root@9.77.9.126
如果成功,说明36000已经完全可以使用了,接下来可以根据上述步骤把sshd_config的Port 22注释掉即可。
ssh 可以从用户级配置文件和系统级配置文件中获取更多的配置数据,这样我们可以在使用ssh时省掉很多繁杂的命令选项。使用ssh命令进行远程登录时,实际上可以不使用-p选项显示指明端口,我们可以通过配置文件的方式来设置ssh命令默认端口。实际上ssh获取配置数据会以下面的顺序进行:
1.command-line options
2.user's configuration file (~/.ssh/config)
3.system-wide configuration file (/etc/ssh/ssh_config)
因此更改配置文件~/.ssh/config或/etc/ssh/ssh_config的Port选项即可。
...
Port 36000
...
关于ssh客户端配置文件的内容说明,具体参见ssh_config(5),使用命令man 5 ssh_config
即可打开。
[1]修改ssh默认端口 [2]ubuntu.ssh [3]ubuntu.ssh_config