# 查看ssh登录失败日志 sudo journalctl -u sshd | grep -i "failed" | tail -30 # 创建普通用户study,加入wheel管理员组 sudo adduser study sudo passwd study sudo usermod -aG wheel study # 设置密钥目录权限(SSH强制要求) chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys # 校验sshd配置语法,重载ssh服务 sudo sshd -t sudo systemctl reload sshd # firewalld放行ssh服务 sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload sudo firewall-cmd --list-all # 安装epel源与fail2ban防护工具 sudo dnf install -y epel-release sudo dnf install -y fail2ban sudo systemctl enable --now fail2ban sudo fail2ban-client status sshd # 检查sudo配置语法 sudo visudo -c
问题1:配置密钥登录依旧提示输入密码
原因:.ssh目录、authorized_keys文件权限过于宽松,SSH直接拒绝密钥认证。
解决:目录权限设置700,密钥文件权限设置600,确认文件属主是当前用户,不是root。
问题2:修改sshd_config后SSH连接不上服务器
原因:配置写错直接重载,SSH网络通道失效。
解决:阿里云控制台打开VNC登录,修正配置,使用 sshd -t校验语法后再重载服务。
问题3:sudoers配置写错,全部账号无法使用sudo管理员权限
解决:VNC以root登录服务器,修改或者删除 /etc/sudoers.d/teacher,执行visudo‑c校验语法。
# firewalld永久放行http(80端口) sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload sudo firewall-cmd --list-services # 安装、启动Nginx,设置开机自启 sudo dnf install -y nginx sudo systemctl enable --now nginx systemctl status nginx # 创建网站目录,修改属主、权限 sudo mkdir -p /var/www/mysite sudo chown -R study:study /var/www/mysite sudo chmod 755 /var/www/mysite # nginx配置语法校验,重载配置 sudo nginx -t sudo systemctl reload nginx # 实时查看网站访问日志 sudo tail -f /var/log/nginx/mysite_access.log # 查看SELinux状态(阿里云Rocky默认关闭) getenforce
问题1:IP可以访问网站,域名打不开
原因:DNS解析记录未生效或者解析填写错误。
解决:nslookup校验域名解析结果,等待TTL缓存时间到期生效。
问题2:浏览器访问返回403 Forbidden禁止访问
原因:网页文件、目录权限不足,nginx工作进程没有读取权限。
解决:目录权限755,html文件权限644;查看nginx错误日志定位Permission denied权限拒绝。
问题3:域名打开显示Nginx默认页面,不是自己写的主页
原因:配置文件server_name写错,缺少www域名,修改后没有重载nginx。
解决:修正mysite.conf配置,nginx‑t校验,执行systemctl reload nginx。
# firewalld放行https(443端口) sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload sudo firewall-cmd --list-services # 安装certbot证书工具 sudo dnf install -y certbot certbot --version # 查看本机所有证书信息 sudo certbot certificates # 启用证书自动续期定时器 sudo systemctl enable --now certbot-renew.timer systemctl list-timers 'certbot*' # 演练模拟证书续期(不会修改真实证书) sudo certbot renew --dry-run
问题1:certbot申请证书提示连接超时timeout
原因:80端口没有开放,安全组或者firewalld防火墙拦截。
解决:检查两层防火墙,确认80端口放行。
问题2:nginx‑t报错 cannot load certificate
原因:ssl_certificate证书文件路径书写错误。
解决:执行certbot certificates查看真实证书路径,修改nginx配置。
问题3:证书到期,网站浏览器提示不安全
原因:没有开启certbot自动续期定时器;deploy钩子脚本缺少执行权限。
解决:确认certbot‑renew.timer已经启用;给钩子脚本添加执行权限,执行renew --dry‑run演练。