CentOS允许SSH登录如何设置允许登录

CentOS允许SSH登录如何设置允许登录

# CentOS 允许 SSH 登录详细操作指南

##

准备工作:检查 SSH 服务状态

在开始配置 SSH 登录之前,首先需要确认 SSH 服务是否正在运行。打开终端,输入以下命令检查服务状态:

systemctl status sshd

如果显示 "active (running)",说明 SSH 服务正在运行。如果没有运行,可以使用以下命令启动服务:

systemctl start sshd

此外,还可以设置服务在系统启动时自动运行:

systemctl enable sshd

##

修改 SSH 配置文件

CentOS 默认使用的是 SSH 客户端版本 2,安全性更高。修改 SSH 配置文件可以优化登录体验和安全性。使用以下命令编辑配置文件:

vi /etc/ssh/sshd_config

在文件中,需要注意以下几个关键配置项:

1. Port:默认端口为 22,可以修改为其他端口提高安全性
2. PermitRootLogin:默认为 "yes",建议改为 "no" 以禁止 root 用户直接登录
3. PubkeyAuthentication:开启公钥认证,提高安全性
4. PasswordAuthentication:根据需要开启或关闭密码认证

修改示例:

Port 2222  # 修改为非默认端口
PermitRootLogin no  # 禁止 root 用户直接登录
PubkeyAuthentication yes  # 开启公钥认证
PasswordAuthentication no  # 关闭密码认证

修改后保存文件并重启 SSH 服务:

systemctl restart sshd

##

配置防火墙允许 SSH 连接

如果系统启用了防火墙(如 firewalld),需要添加规则允许 SSH 连接。首先查看防火墙状态:

firewall-cmd --state

如果未启用,可以使用以下命令启动:

firewall-cmd --permanent --add-service=ssh

然后重新加载防火墙规则:

firewall-cmd --reload

如果需要允许特定 IP 地址访问,可以使用以下命令:

firewall-cmd --permanent --zone=public --add-source=192.168.1.100

##

创建 SSH 密钥对

使用 SSH 密钥对登录比密码登录更安全。在本地客户端创建密钥对:

ssh-keygen -t rsa -b 4096

按照提示操作,可以指定密钥保存路径和密码。创建完成后,将公钥复制到服务器:

ssh-copy-id username@your_server_ip

##

测试 SSH 连接

完成以上配置后,可以测试 SSH 连接。使用以下命令测试:

ssh username@your_server_ip

如果配置正确,应该可以直接登录,无需输入密码。

##

常见问题解答

Q1: 无法通过 SSH 登录怎么办?

A1: 首先检查 SSH 服务是否运行,可以使用 systemctl status sshd 命令。如果服务未运行,使用 systemctl start sshd 启动。此外,检查防火墙是否阻止了 SSH 端口(默认 22 端口)。

Q2: 忘记了 SSH 密钥密码怎么办?

A2: 可以使用 ssh-keygen -p 命令修改密钥密码。如果无法使用旧密码,可能需要先使用其他方式(如 root 登录)重置密码或创建新密钥。

Q3: 如何让 SSH 连接更安全?

A3: 建议采取以下措施:
1. 修改默认 SSH 端口
2. 禁用 root 用户直接登录
3. 仅使用公钥认证
4. 限制允许登录的 IP 地址
5. 定期更新 SSH 客户端和服务版本

THE END