红帽Linux(RHEL)5/6:更改OpenSSH端口号
如何在RHEL v5/6上将默认的sshd tcp端口#22更改为3033?
如何修改SELinux以允许端口3033,如何安全地更新RHEL上的防火墙以允许TCP端口3033?
如何在Redhat Linux操作系统上更改ssh端口?
您可以设置或者指定sshd服务器侦听的端口号。
缺省值为TCP端口#22,但可以使用sshd_config文件中的以下任一选项进行更改:
语法:更改RHEL上的SSH端口
Port PortNumberHere
或者
ListenAddress IPv4Address:Port ListenAddress IPv6Address:Port ListenAddress Hostname:Port
使用端口选项将ssh端口更改为非标准端口#2022
编辑/etc/ssh/sshd_config
,执行:
# vi /etc/ssh/sshd_config
如下编辑/追加以将"端口"设置为2022:
Port 2022
保存并关闭文件。
RHEL使用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
保存并关闭文件。
在基于REHL的系统上重新加载SSHD服务
重新启动或者重新加载sshd服务器之前。
您需要在RHEL上更新以下服务:
- SELinux配置
- 防火墙设定
在Red Hat Linux上更新OpenSSH SELinux设置
如果使用的是SELinux,请将tcp端口2022添加到OpenSSH服务器的端口上下文中:
# semanage port -a -t ssh_port_t -p tcp 2022
在Red Hat/CentOS Linux上更新防火墙设置
您还需要更新防火墙设置,以便用户可以使用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
在基于RHEL的系统上重新启动sshd
执行以下命令以重新启动/重新加载SSHD服务:
# service sshd reload
使用以下netstat命令验证新的端口设置:
# netstat -tulpn | grep sshd
最后,在红帽企业Linux上为防火墙加注星标:
# service iptables start ## IPv6 ## # service ip6tables start
如何使用ssh/sftp/scp/rsync命令在端口#2022上连接到ssh服务器?
ssh命令的语法如下:
ssh -p PortNumberHere user@server-name-here ssh -p PortNumberHere user@server-name-here commandNameHere
scp或者sftp命令的语法如下:
scp -P PortNumberHere source user@server-name-here:/path/to/dest
或者
sftp -P PortNumberHere user@server-name-here
使用rsync命令更改SSH端口号的语法如下:
sync -av -e 'ssh -p PORT-NUMBER-HERE' source user@server-name
或者,您可以更新/.ssh/config或者$HOME/.ssh/config文件以覆盖端口设置。
这将为您节省一些时间,因为您不必在每次使用ssh/scp/sftp命令时都执行port和其他选项。