CentOS7 Linux服务器修改SSH默认22端口


1. 安装一些东西 🧰

# 安装vim
yum -y install vim*

# 安装netstat
yum install net-tools

# 安装SELinux相关的三个东西
# 一
yum install policycoreutils-python
# 二
yum provides semanage
# 三
yum install selinux-policy-targeted

2. 修改SSH配置文件 📃

vim /etc/ssh/sshd_config

找到“# Port 22”,去掉“#”号(即注释),修改为:

Port 22 
Port 31415  # 你喜欢的端口

保留22端口,是为了防止之后因为各种权限和配置问题,导致连22端口不能访问。等一切都👌了,再关闭22端口不迟。
修改端口时候最好挑10000~65535之间的端口号,因为10000以下容易被系统或一些软件占用。

补充:vim相关知识 🧐

通过vim修改文件:

  • 通过上下箭头,或者Ctrl+FCtrl+B上下翻页找到你要修改的部分,输入i进入编辑(INSERT)模式

  • 修改完毕后,按ESC进入命令行模式,之后输入:wq(冒号为英文冒号,w表示write写,q表示quit推出),回车即可保存修改并退出。


3. 使用SELinux为SSH开放端口

先查看SELinux开放给ssh使用的端口

semanage port -l|grep ssh

系统打印如下:

ssh_port_t tcp 22

可知,SELinux没有给SSH开放31415端口,那么我们来添加该端口:
semanage port -a -t ssh_port_t -p tcp 31415

# 注:关闭端口
# semanage port -d -t ssh_port_t -p tcp 31415

完成后,再次查看

semanage port -l|grep ssh 
ssh_port_t     tcp  22,31415

4. 防火墙开启端口

firewall-cmd --permanent --add-port=31415/tcp

打印结果如下:

success

重新加载防火墙策略:
firewall-cmd --reload

执行成功后,查看31415端口是否被开启:

firewall-cmd --permanent --query-port=31415/tcp

打印结果如下:

yes

补充:防火墙相关知识 🧐

# 查看防火墙状态
systemctl status firewalld

# 开启防火墙
systemctl start firewalld

# 开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent

# 关闭端口
firewall-cmd --remove-port=80/tcp --permanent

# 刷新
firewall-cmd --reload

# 查看端口是否开启的三种方法
firewall-cmd --list-all
iptables-save | grep 443
firewall-cmd --zone=public --query-port=443/tcp

5. 重启 🧑🏻‍💻

重启SSH服务和防火墙,最好也重启下服务器

systemctl restart sshd

systemctl restart firewalld.service

shutdown -r now

6. 尝试通过31415端口登录SSH

通过命令行终端连接工具登录

如果成功,说明31415已经完全可以使用了

接下来可以根据需要关闭22端口。(参照上述步骤注释掉sshd_config的Port 22,关闭SELinux和防火墙(Firewalld)的22端口)


7. 补充栏

1.查看某端口是否被占用,以31415为例:

netstat -lnp|grep 31415

#查看所有端口
netstat -anp|grep ssh

如果没有任何打印,说明没有被占用。有打印的话,说明端口被占用了,一般会列出被哪个进程占用。

2.查看是否开启了SELinux

sestatus -v

如果输出结果为:

SELinux status: disabled

说明没有打开,可以通过修改SELinux的配置开启它:

vim /etc/selinux/config

找到:

SELINUX=disabled

修改成:

SELINUX=enforcing

重启一下,就👌了

3.CentOS7防火墙改为了firewalld,而不是iptables


其它内容

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当CentOS 7的SSH服务器拒绝密码时,可能有几个原因和解决方法。 首先,可能是由于配置文件中的密码验证设置导致SSH服务器拒绝密码。您可以通过编辑`/etc/ssh/sshd_config`文件来检查和修改这些设置。确保以下行没有注释并设置为yes: ``` PasswordAuthentication yes ``` 保存文件后,重新启动SSH服务器以使更改生效: ``` sudo systemctl restart sshd ``` 如果问题仍然存在,请检查是否还有其他密码验证设置覆盖了此配置文件中的设置,例如PAM(插件身份验证模块)或其他安全策略。 另外,SSH服务器拒绝密码可能是由于错误的密码或用户名导致的。确保您输入的用户名和密码是正确的,并且区分大小写。如果忘记了密码,可以尝试重新设置密码。 另一种可能是由于CentOS 7上的SELinux(安全增强型Linux)策略导致的。SELinux可以限制SSH服务器的访问权限。可以通过以下命令查看和修改SELinux策略: ``` sestatus ``` 命令的输出将显示当前SELinux状态。如果需要,可以使用以下命令将SELinux策略更改为宽松模式: ``` setenforce 0 ``` 最后,如果问题仍然存在,并且您已尝试了以上所有方法,请检查系统日志(/var/log/secure)以获取更多详细信息,并考虑向生产环境中的SSH服务器添加其他身份验证方法,如密钥登录。 希望以上解决方案能帮助您解决CentOS 7 SSH服务器拒绝密码的问题。 ### 回答2: CentOS 7默认情况下,SSH服务器拒绝使用密码进行登录,这是为了提高服务器安全性。相反,它允许通过使用SSH公钥进行身份验证来登录系统。 要解决这个问题,您可以按照以下步骤进行操作: 1. 生成SSH公钥和私钥对:使用ssh-keygen命令生成一对公钥和私钥。私钥将保存在本地计算机中,而公钥将上传到服务器上。 2. 将公钥上传到服务器:使用ssh-copy-id命令将公钥上传到服务器上。这将把公钥添加到服务器上的“authorized_keys”文件中,以便以后使用该公钥进行身份验证。 3. 配置SSH服务器:通过编辑SSH服务器的配置文件,您可以启用或禁用密码身份验证。您可以使用文本编辑器打开“/etc/ssh/sshd_config”文件,找到并修改以下行: ``` PasswordAuthentication yes ``` 将上述行修改为下面的内容,并保存配置文件: ``` PasswordAuthentication no ``` 4. 重新启动SSH服务器:使用以下命令重新启动SSH服务器以使配置更改生效: ``` sudo systemctl restart sshd ``` 现在,当您尝试通过SSH连接到CentOS 7服务器时,系统将使用公钥进行身份验证,并拒绝使用密码进行登录。 需要注意的是,在进行这些更改之前,确保您已经在系统中设置了至少一个具有sudo权限的用户,以防在配置错误的情况下无法登录到服务器。 通过这些步骤,您应该能够解决CentOS 7 SSH服务器拒绝使用密码进行登录的问题,并提高服务器的安全性。 ### 回答3: 当CentOS 7的SSH服务器拒绝密码时,可能有几种原因。以下是可能的解决方案: 1. 确保使用正确的用户名和密码进行SSH登录。检查是否拼写错误,或者其他登录凭证是否正确。 2. 检查SSH服务器的配置文件。在CentOS 7中,SSH的配置文件位于/etc/ssh/sshd_config。打开此文件,并查看是否启用了密码验证。在配置文件中,确保以下行没有被注释掉: PasswordAuthentication yes 3. 检查防火墙设置。如果服务器上启用了防火墙,可能会阻止SSH连接。检查防火墙规则,确保允许SSH流量通过。可以使用以下命令来打开SSH端口: sudo firewall-cmd --zone=public --add-service=ssh --permanent sudo firewall-cmd --reload 4. 检查SELinux设置。CentOS 7中默认启用SELinux,它可能会阻止SSH连接。可以通过禁用SELinux或调整其配置来解决问题。通过编辑/etc/selinux/config文件,并将SELINUX注释掉或设置为disabled来禁用SELinux: SELINUX=disabled 5. 检查密码策略。如果密码不符合服务器的密码策略要求,SSH服务器可能会拒绝密码。可以尝试更改密码以符合策略要求,或者修改服务器密码策略来接受更简单的密码。 6. 检查系统日志。使用以下命令查看系统日志文件/var/log/secure,了解SSH服务器拒绝密码的详细信息: tail -f /var/log/secure 如果使用以上方法都无法解决问题,可以尝试重新启动SSH服务器,重新生成SSH密钥对,或者升级SSH软件包来修复可能的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值