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 客户端和服务版本