Red Hat Linux (RHEL) 5/6:更改 OpenSSH 端口号
您可以设置或指定 sshd 服务器监听的端口号。默认为 TCP 端口 #22,但可以使用 sshd_config 文件中的以下任一选项进行更改:
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | 没有任何 |
预计阅读时间 | 3 分钟 |
语法:在 RHEL 上更改 SSH 端口
Port PortNumberHere
或者
ListenAddress IPv4Address:Port
ListenAddress IPv6Address:Port
ListenAddress Hostname:Port
使用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
最后,在 Red Hat 企业 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
sync -av -e 'ssh -p PORT-NUMBER-HERE' source user@server-name
或者,您可以更新 /.ssh/config 或 $HOME/.ssh/config 文件以覆盖端口设置。这将节省您的时间,因为您不需要在每次使用 ssh/scp/sftp 命令时输入端口和其他选项。