CentOS Linux 5/6:更改OpenSSH端口号

时间:2020-01-09 10:34:11  来源:igfitidea点击:

我是CentOS Linux的新用户。
如何在CentOS Linux版本5/6上将默认的sshd tcp端口#22更改为2022?
您可以设置或指定sshd服务器侦听的端口号。
缺省值为TCP端口#22。

语法:在CentOS Linux上更改SSH端口

您可以在/etc/ssh/sshd_config文件中使用以下任一选项:

Port PortNumberHere

ListenAddress IPv4Address:Port ListenAddress IPv6Address:Port ListenAddress主机名:Port

如果未指定Port,则sshd将侦听该地址以及所有先前指定的Port选项。
默认为侦听所有本地IP地址。

sshd_config中提供了多个ListenAddress选项。

使用端口选项在非标准端口2022上运行ssh

编辑/etc/ssh/sshd_config,输入:

# vi /etc/ssh/sshd_config

如下编辑/附加以将"端口"设置为2022:

Port 2022

保存并关闭文件。

CentOS使用ListenAddress选项在非标准端口2022上运行ssh

注意:如果服务器上有多个IP地址,请尝试如下的ListenAddress:

## bind sshd to two ip address on a non-standard port ##
ListenAddress 192.168.1.5:2022
ListenAddress 203.1.2.3:2022

保存并关闭文件。

重新加载SSHD服务

重新启动或重新加载sshd服务器之前。
您需要更新:

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

关于OpenSSH SELinux用户的说明

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

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

更新防火墙设置

您还需要更新防火墙设置,以便用户可以使用TCP 2022登录。
编辑,/etc/sysconfig/iptables并打开sshd端口2022:

# vi /etc/sysconfig/iptables

编辑/追加如下:

## delete or comment out port 22 line ##
## -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
## open port 2022
-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

最后,在CentOS Linux上为防火墙加注星标:

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

如何使用ssh命令在端口#2022上连接到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命令在端口#2022上连接到SSH服务器?

语法为:

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

如何使用sftp命令在端口#2022上连接到SSH服务器?

语法为:

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

如何使用rsync命令在端口#2022上连接到SSH服务器?

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

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

因此要将/home/Hyman备份到端口号为2022的server1.theitroad.com,请输入:

rsync -av -e 'ssh -p 2022' /home/Hyman/ [email protected]

我还建议您可以更新/.ssh/config($HOME/.ssh/config)文件以覆盖端口设置。
每当您使用ssh/scp/sftp命令时,这将节省您一些时间。