在CentOS Linux 5/6中如何修改OpenSSH的端口号

时间:2019-11-20 08:53:06  来源:igfitidea点击:

如何修改ssh的端口号?
如何设置openssh的监听端口?
ssh的默认端口是什么?

在CentOS Linux上更改SSH端口

SSH的默认端口是22。

编辑/etc/ssh/sshd_config

# vi /etc/ssh/sshd_config

将默认端口修改成其他值:

Port 2022

CentOS使用ListenAddress选项修改ssh端口后

如果服务器上有多个IP地址,还可以使用ListenAddress进行设置:

ListenAddress 192.168.1.5:2022
ListenAddress 203.1.2.3:2022

重新加载SSHD服务

重新启动或重新加载sshd服务之前。

可能还需要更新:

  • SELinux配置
  • 防火墙设定
  • fail2ban设置

SELinux设置

如果使用了SELinux,需要将tcp端口2022添加到OpenSSH服务器的端口上下文中:

# semanage port -a -t ssh_port_t -p tcp 2022

更新防火墙设置

编辑/etc/sysconfig/iptables并打开sshd端口2022:

# vi /etc/sysconfig/iptables

添加下面规则

## 注释掉原来的规则
## -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
## 新增一条一样的规则,端口号修改一下
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2022 -j ACCEPT

如果您使用的是IPv6,还需要编辑/etc/sysconfig/ip6tables文件。

临时停用防火墙:

# service iptables stop
# service ip6tables stop

Fail2ban设置

Fail2ban会扫描日志文件并禁止显示恶意迹象的IP,其中包括过多的密码故障,寻求利用,ssh登录等。
更改了端口号后,fail2ban必须更新规则。

在CentOS上重新启动sshd

执行以下命令重新加载SSHD服务:

# service sshd reload

使用以下netstat命令验证新的端口设置:

# netstat -tulpn | grep sshd

开启防火墙

# service iptables start
## IPv6 ##
# service ip6tables start

如何连接到非默认端口的SSH服务器?

语法为:

ssh -p PortNumberHere user@server-name-here 
ssh -p PortNumberHere user@server-name-here commandNameHere
ssh -p 2022 [email protected]
ssh -p 2022 [email protected] df

如何使用scp命令连接到SSH服务器?

语法为:

scp -P PortNumberHere source user@server-name-here:/path/to/dest
scp -P 2022 resume.pdf theitroad@nas01:/backups/personal/theitroad/files/

如何使用sftp命令连接到SSH服务器?

语法为:

sftp -P PortNumberHere user@server-name-here 
sftp -P 2022 [email protected]

如何使用rsync命令连接到非默认端口的SSH服务器?

使用rsync命令更改SSH端口号的语法如下:

sync -av -e 'ssh -p PORT-NUMBER-HERE' source user@server-name