centos SSH端口修改方法


Linux各发行版中SSH端口默认为22,如果正式做站或其它用途,为了提高安全性就需要修改掉默认的SSH端口号,防止被有心人穷举密码部分VPS提供商,若您的VPS服务器SSH遭受多次的暴力破解,可能会遭到罚款或临时终止服务,所以修改SSH的默认端口是有必要的。

有的朋友不知道“穷举”是什么意思,这里给这些朋友扫盲下 :

穷举法,或称为暴力破解法,是一种针对于密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。因此有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。详细请看百度百科:穷举法

废话不多说,先通过当前的SSH端口(默认为:22)登陆。


1、修改配置文件:/etc/ssh/sshd_config ,找到#port 22 (如图)


ssh1.jpg


2、先将Port 22 前面的 # 号去掉,并另起一行。如定义SSH端口号为26611 ,则输入


Port 26611

自定义端口选择建议在万位的端口(如:10000-65535之间)

ssh2.jpg

也许您会问为什么要先把port 22前面的 # 去掉呢?因为在配置文件中,# 是Linux的注释字符注释字符后的代码程序是不会执行的。SSH默认的(即非手动指定)端口为22,所以配置文件在默认的情况下以注释字符出现。当需要指定其它端口或多端口同时访问时,就要删掉注释符号,告知程序按照您的意愿来执行响应操作。

以上操作,手动指定SSH端口为22和26611(双端口号),保留22是为了防止个别防火墙屏蔽了其它端口导致无法连接VPS(如没单独指定22,新指定的26611端口防火墙也没放行,那么可能无法通过SSH连接VPS或服务器)。为了防止不必要问题的产生,所以要给自己保留条“后路”。


3、修改完毕后,重启SSH服务,并退出当前连接的SSH端口。(如图)


service sshd restart

ssh3.jpg


4、重启完毕,尝试使用新端口登陆(如图)


ssh4.jpg


连接成功,需要重新添加SSH-RSA验证,点击是(或Yes)即可。

ssh5.jpg


5、若能正常访问,返回第一步,根据第二步的操作将原port 22整段删掉,再按第三步重启SSH即可。


以上步骤重启后使用默认22号端口无法进入SSH,达到目的。


<think>好的,我现在需要帮助用户解决在CentOS系统中配置SSH自定义端口时遇到的权限被拒绝问题。首先,我要回忆一下用户提供的引用内容,里面提到了SELinux相关的命令,比如使用semanage添加端口,或者关闭SELinux。用户的问题应该是修改SSH端口后,无法绑定新端口,出现Permission denied的错误。 首先,我应该考虑常见的导致这个问题的原因。通常,Permission denied可能有两种情况:一种是SELinux没有允许新端口,另一种是防火墙没有放行。根据用户提供的引用,引用1到4都提到了SELinux的问题,所以这可能就是主要原因。用户可能已经修改SSH的配置文件,比如/etc/ssh/sshd_config,将端口改成了自定义的,比如13389,但重启服务时失败,提示权限问题。 接下来,我需要整理解决步骤。第一步应该是检查SELinux是否阻止了端口。用户需要确认是否安装了semanage工具,因为默认可能没有安装。如果没有安装,需要使用yum install policycoreutils-python来安装。然后,使用semanage port -a -t ssh_port_t -p tcp 新端口号,将新端口添加到SELinux允许的列表中。例如,用户引用中的例子都是这样操作的。 然后,用户可能需要检查防火墙设置,比如firewalld是否开放了新端口CentOS 7默认使用firewall-cmd,所以需要添加端口并重新加载防火墙规则。如果防火墙没有放行,即使SELinux允许,连接也可能被阻止。 另外,用户可能需要确认是否以root权限运行了服务重启,或者配置文件是否有语法错误。例如,sshd_config中的Port行是否正确,是否有重复的端口设置。重启sshd服务时,使用systemctl restart sshd命令,而不是旧版的service命令。 还有,用户可能没有正确配置SELinux导致问题,所以步骤中需要包含检查SELinux状态的部分,比如使用semanage port -l | grep ssh查看当前允许的端口列表,确保新端口已添加进去。如果添加失败,可能需要确认命令是否正确,或者是否有其他策略限制。 最后,如果所有步骤都正确,但问题依旧,可能需要考虑暂时禁用SELinux进行测试,但这不推荐作为最终解决方案,因为会降低系统安全性。用户应该优先使用SELinux的正确配置方法。 总结起来,解决方案的步骤应该是: 1. 安装必要的工具(如semanage)。 2. 添加新端口到SELinux。 3. 配置防火墙开放端口。 4. 检查SSH配置并重启服务。 5. 验证SELinux和防火墙设置。 同时,用户可能需要检查是否有其他安全软件或配置影响了端口的使用,比如AppArmor或者其他网络规则。但根据引用内容,主要问题还是SELinux,所以重点放在那里。</think>### CentOS SSH自定义端口权限被拒的解决方案 在CentOS系统中配置自定义SSH端口时,若出现`Permission denied`错误,通常与**SELinux安全机制**或**防火墙规则**相关。以下是具体解决步骤: --- #### 一、检查SELinux配置 1. **确认SELinux状态** 执行命令查看SELinux是否启用: ```bash sestatus ``` 若输出为`enabled`,需调整端口策略。 2. **添加端口到SELinux白名单** 使用`semanage`工具将新端口(如`22322`)加入允许列表: ```bash sudo semanage port -a -t ssh_port_t -p tcp 22322 ``` - 若未安装`semanage`,先安装依赖: ```bash sudo yum install policycoreutils-python ``` 3. **验证端口是否添加成功** ```bash sudo semanage port -l | grep ssh ``` 输出应包含新端口(如`22322`)[^1][^2][^4]。 --- #### 二、配置防火墙放行端口 1. **开放新端口(Firewalld)** ```bash sudo firewall-cmd --permanent --add-port=22322/tcp sudo firewall-cmd --reload ``` 2. **验证防火墙规则** ```bash sudo firewall-cmd --list-ports ``` --- #### 三、修改SSH配置文件 1. **编辑SSH服务配置** 修改`/etc/ssh/sshd_config`,添加或取消注释: ```bash Port 22322 ``` 2. **重启SSH服务** ```bash sudo systemctl restart sshd ``` --- #### 四、验证连接 使用新端口测试SSH连接: ```bash ssh username@server_ip -p 22322 ``` --- #### 五、备用方案(不推荐) 若问题仍未解决,可临时**关闭SELinux**测试: ```bash sudo setenforce 0 # 临时关闭 sudo vim /etc/selinux/config # 永久关闭需修改为SELINUX=disabled ``` > **注意**:关闭SELinux会降低系统安全性[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值