Ubuntu 22.04 LTS 新装系统后,第一件事:5分钟搞定SSH远程访问(附systemctl和ufw防火墙设置)
Ubuntu 22.04 LTS 系统初始化:5分钟构建安全SSH远程管理环境
刚完成Ubuntu 22.04 LTS的安装,开发者最迫切的需求往往是摆脱显示器和键盘的束缚,快速建立可靠的远程管理通道。作为长期支持版本,22.04 LTS在系统稳定性和安全性方面都有显著提升,但默认配置仍需要手动优化才能满足远程开发需求。本文将带你用最短时间完成从物理机到云端工作台的转变,重点解决三个核心问题:SSH服务的高效部署、系统服务的自动化管理以及防火墙的安全策略配置。
1. 基础环境准备与SSH服务部署
Ubuntu 22.04 LTS默认不安装SSH服务端,这是基于最小化安装的安全考虑。我们需要先更新软件源确保获取最新的安全补丁:
sudo apt update && sudo apt upgrade -y接着安装OpenSSH服务端组件,这个开源实现已成为Linux系统的标准远程管理方案:
sudo apt install openssh-server -y安装完成后,系统会自动创建以下关键文件:
/etc/ssh/sshd_config:主配置文件/etc/ssh/ssh_host_*:主机密钥文件/var/log/auth.log:认证日志
验证服务是否正常运行:
sudo systemctl status ssh正常运行的输出应显示"active (running)"状态。如果遇到问题,可以检查服务日志:
journalctl -u ssh.service --no-pager -n 202. 系统服务管理与开机自启
Ubuntu 22.04采用systemd作为初始化系统,我们需要掌握几个关键操作命令:
| 操作类型 | 命令格式 | 应用场景 |
|---|---|---|
| 启动服务 | sudo systemctl start ssh | 临时启动SSH服务 |
| 停止服务 | sudo systemctl stop ssh | 紧急停止远程访问 |
| 重启服务 | sudo systemctl restart ssh | 应用配置更改后 |
| 查看状态 | sudo systemctl status ssh | 检查运行状况 |
| 启用自启 | sudo systemctl enable ssh | 系统启动时自动运行 |
设置开机自启是服务器管理的基本要求:
sudo systemctl enable --now ssh这个命令同时实现了立即启动和设置自启两个功能。要确认自启是否配置成功:
systemctl is-enabled ssh3. 防火墙安全策略配置
UFW(Uncomplicated Firewall)是Ubuntu的简化防火墙工具,基于iptables构建。配置前需要确认当前防火墙状态:
sudo ufw status verbose允许SSH连接的两种等效方式:
sudo ufw allow ssh # 使用服务名 sudo ufw allow 22/tcp # 直接指定端口启用防火墙并设置默认策略:
sudo ufw default deny incoming # 默认拒绝所有入站 sudo ufw default allow outgoing # 允许所有出站 sudo ufw enable重要提示:在远程服务器上操作防火墙时,建议先保持当前SSH连接,另开终端测试新连接,避免被锁在系统外。
验证防火墙规则是否生效:
sudo ufw status numbered典型输出应显示22端口允许规则:
Status: active To Action From -- ------ ---- [1] 22/tcp ALLOW IN Anywhere [2] 22/tcp (v6) ALLOW IN Anywhere (v6)4. 高级安全加固与连接测试
完成基础配置后,建议进行以下安全优化:
修改默认SSH端口: 编辑配置文件:
sudo nano /etc/ssh/sshd_config找到并修改:
Port 2222 # 改为非标准端口禁用root直接登录:
PermitRootLogin no启用密钥认证:
PasswordAuthentication no PubkeyAuthentication yes
应用配置更改:
sudo systemctl restart ssh对应防火墙规则更新:
sudo ufw allow 2222/tcp测试连接时建议使用-v参数查看详细过程:
ssh -p 2222 username@server_ip -v连接建立后,可以检查会话信息:
who # 查看当前登录用户 netstat -tpn | grep ssh # 查看SSH连接详情5. 常见问题排查与系统优化
遇到连接问题时,可按以下步骤排查:
端口检测:
sudo ss -tulnp | grep ssh正常输出应显示SSH服务正在监听指定端口
防火墙验证:
sudo ufw status | grep 22连接测试工具:
telnet server_ip 22 # 测试端口可达性 ssh -T user@server_ip # 测试认证过程
为提高SSH连接稳定性,可以调整客户端配置(~/.ssh/config):
Host myserver HostName server_ip Port 2222 User username ServerAliveInterval 60 TCPKeepAlive yes服务端性能优化参数(/etc/ssh/sshd_config):
ClientAliveInterval 300 ClientAliveCountMax 2 MaxSessions 10 LoginGraceTime 1m