从零到远程:手把手教你用Electerm搞定Ubuntu Server的SSH连接与防火墙配置
当你第一次面对Ubuntu Server时,最迫切的需求可能就是如何安全地远程管理它。作为运维新手或开发者,掌握SSH连接和防火墙配置是进入Linux世界的第一道门槛。本文将带你用Electerm这款轻量级终端工具,从零开始建立与Ubuntu Server 22.04的安全连接通道,同时深入解析关键配置背后的原理。
1. 环境准备:搭建你的远程管理基础
在开始之前,确保你已经完成以下准备工作:
- Ubuntu Server 22.04:已安装并运行在虚拟机或物理服务器上
- Electerm:最新版本已安装在你的本地电脑
- 网络连通性:确保客户端和服务器在同一网络或可通过公网访问
提示:如果你使用的是云服务器,通常已经预装SSH服务,但可能需要额外配置安全组规则。
检查Ubuntu Server的SSH服务状态:
sudo systemctl status ssh如果服务未运行,使用以下命令启动:
sudo systemctl start ssh sudo systemctl enable ssh # 设置开机自启2. 深入SSH配置:安全与便利的平衡术
2.1 理解sshd_config的关键参数
SSH服务的核心配置文件是/etc/ssh/sshd_config,它控制着所有连接行为。使用vim或nano编辑器打开:
sudo vim /etc/ssh/sshd_config重点关注以下参数:
| 参数名 | 默认值 | 推荐值 | 说明 |
|---|---|---|---|
| Port | 22 | 自定义高端口号 | 更改默认端口可减少暴力破解尝试 |
| PermitRootLogin | prohibit-password | no | 是否允许root直接登录 |
| PasswordAuthentication | yes | no | 是否允许密码认证 |
| PubkeyAuthentication | yes | yes | 启用密钥认证 |
2.2 安全启用root远程登录的三种方式
虽然不推荐直接使用root账户,但在某些管理场景下可能需要。PermitRootLogin参数有三种配置方式:
- prohibit-password:允许root登录,但禁止密码认证(仅密钥)
- yes:允许root使用密码登录(高风险)
- no:完全禁止root远程登录(最安全)
如果确实需要临时启用:
sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config修改后必须重启服务:
sudo systemctl restart sshd3. UFW防火墙:守护你的服务器门户
3.1 防火墙基础操作速查表
UFW(Uncomplicated Firewall)是Ubuntu的简化防火墙工具。以下是常用命令速查:
| 命令 | 作用 | 示例 |
|---|---|---|
| ufw enable | 启用防火墙 | sudo ufw enable |
| ufw disable | 关闭防火墙 | sudo ufw disable |
| ufw status | 查看状态 | sudo ufw status verbose |
| ufw allow | 开放端口 | sudo ufw allow 22/tcp |
| ufw deny | 拒绝端口 | sudo ufw deny 22 |
3.2 精确控制SSH访问
仅开放SSH端口可能还不够,建议组合使用以下策略:
# 限制SSH只允许特定IP访问 sudo ufw allow from 192.168.1.100 to any port 22 # 或者限制整个子网 sudo ufw allow from 192.168.1.0/24 to any port 22 # 更改默认策略为拒绝所有入站 sudo ufw default deny incoming注意:修改防火墙规则前,确保当前SSH连接不会中断,或者有其他访问途径。
4. Electerm实战:打造高效远程工作流
4.1 高级连接配置技巧
在Electerm中创建新连接时,这些进阶设置能提升体验:
- 会话保持:在"高级"选项卡中设置
ServerAliveInterval 60 - 密钥认证:使用SSH密钥替代密码更安全
- 端口转发:方便访问服务器内网服务
- 主题定制:调整字体和配色减轻视觉疲劳
4.2 排错指南:常见连接问题解决
当连接出现问题时,按照以下步骤排查:
基础检查:
- 服务器IP是否正确
- 网络是否通畅(ping测试)
- SSH服务是否运行
中级排查:
# 查看SSH登录日志 sudo tail -f /var/log/auth.log # 检查防火墙规则 sudo ufw status numbered高级诊断:
- 使用
telnet测试端口连通性 - 检查
/etc/hosts.allow和/etc/hosts.deny文件 - 验证SELinux状态(如果启用)
- 使用
5. 安全加固:超越基础配置
5.1 SSH安全增强方案
除了修改端口和禁用root登录,还有更多加固措施:
# 安装fail2ban防御暴力破解 sudo apt install fail2ban # 配置登录尝试限制 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local编辑/etc/fail2ban/jail.local,修改SSH相关配置:
[sshd] enabled = true maxretry = 3 bantime = 1h5.2 防火墙的精细化管理
创建更复杂的防火墙规则组合:
# 按服务名称而非端口号开放 sudo ufw allow OpenSSH # 设置速率限制防止DoS sudo ufw limit 22/tcp # 允许特定端口范围 sudo ufw allow 8000:8010/tcp对于需要频繁修改规则的情况,可以考虑使用iptables直接操作:
# 查看当前规则 sudo iptables -L -n -v6. 效率提升:Electerm的高级功能挖掘
6.1 书签与批量管理
Electerm的书签功能支持分组管理,对于管理多台服务器特别有用。你可以:
- 按项目、环境或团队对服务器分组
- 导出/导入书签配置实现快速迁移
- 使用标签和颜色标记不同重要性的服务器
6.2 终端复用与分屏
结合tmux或screen使用Electerm,实现更强大的终端管理:
# 安装tmux sudo apt install tmux # 基本使用命令 tmux new -s mysession # 新建会话 Ctrl+b d # 分离会话 tmux attach -t mysession # 重新连接在Electerm中,你可以:
- 同时打开多个终端标签页
- 垂直/水平分割窗口
- 同步输入到所有终端(适合批量操作)
7. 从连接到自动化:进阶路线图
当你熟悉基础连接后,可以探索更高效的运维方式:
SSH密钥对认证:彻底告别密码
# 生成密钥对 ssh-keygen -t ed25519 # 上传公钥到服务器 ssh-copy-id user@server_ip配置管理工具:如Ansible
# 安装Ansible sudo apt install ansible # 测试连接 ansible all -m ping -i inventory.ini跳板机架构:通过堡垒机访问内网
VPN替代方案:WireGuard等更现代的解决方案
8. 实战案例:企业级SSH配置模板
以下是一个经过安全加固的sshd_config示例,适合生产环境:
# 基本设置 Port 2222 Protocol 2 ListenAddress 0.0.0.0 # 认证配置 LoginGraceTime 1m PermitRootLogin no StrictModes yes MaxAuthTries 3 MaxSessions 5 # 加密算法 KexAlgorithms curve25519-sha256@libssh.org Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com # 日志与审计 SyslogFacility AUTH LogLevel VERBOSE # 其他安全设置 UsePAM yes AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no应用配置后,务必测试连接:
# 检查配置文件语法 sudo sshd -t # 重启服务 sudo systemctl restart sshd # 测试新端口连接 ssh -p 2222 user@server_ip