这篇教程做两件事:

  1. 把默认 Shell 升级成 Zsh,并安装:

    • Oh My Zsh(OMZ)

    • Spaceship Prompt(主题)

    • zsh-autosuggestions(自动补全建议)

    • zsh-syntax-highlighting(语法高亮)

  2. 安装并配置 Fail2Ban,保护 SSH 防止暴力破解。

环境假设:Debian/Ubuntu,root 或有 sudo 权限。
文中命令你可以直接复制粘贴执行。


1. 安装 Zsh

apt update
apt install -y zsh git curl

安装完成后,先确认一下版本:

zsh --version

2. 安装 Oh My Zsh(OMZ)

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装脚本会自动生成 ~/.zshrc 并把你的 shell 切换到 zsh(部分环境仍建议你后面手动 chsh 一次,见第 6 节)。


3. 安装 Spaceship Prompt(主题)

Spaceship 是一个常用的现代化 Zsh 主题,信息丰富但不至于花里胡哨。

3.1 克隆主题仓库

git clone https://github.com/spaceship-prompt/spaceship-prompt.git \
  "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1

3.2 建立主题软链接

ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" \
  "$ZSH_CUSTOM/themes/spaceship.zsh-theme"

3.3 在 .zshrc 启用主题

编辑 ~/.zshrc

vim ~/.zshrc

找到/设置:

ZSH_THEME="spaceship"

4. 安装自动补全建议(zsh-autosuggestions)

这个插件会根据历史命令给你灰色提示,按 → 或 End 直接补全,非常爽。

git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

5. 安装语法高亮(zsh-syntax-highlighting)

5.1 不同系统的安装方式(按你的环境选)

  • Debian/Ubuntu:

    apt install -y zsh-syntax-highlighting
    
  • Arch: community/zsh-syntax-highlighting(或 AUR git 版)

  • Fedora: Fedora 24+ 有包(或 OBS)

  • macOS(Homebrew):

    brew install zsh-syntax-highlighting
    
  • 其他系统:FreeBSD/Gentoo/OpenSUSE/RHEL/CentOS 等,基本都能在官方仓库或 OBS 找到对应包。

5.2 在 .zshrc 加载高亮脚本(按系统路径选一个)

大多数 Linux(非 NixOS)通常是这一条:

echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

NetBSD / OpenBSD:

echo "source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

macOS / Homebrew:

echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc

6. 配置 .zshrc:主题 + 插件

编辑 ~/.zshrc

vim ~/.zshrc

参考配置(你给的内容我按 OMZ 规范排好):

ZSH_THEME="spaceship"

plugins=(
  git
  z
  extract
  zsh-autosuggestions
)

source $ZSH/oh-my-zsh.sh

保存后让配置立即生效:

source ~/.zshrc

6.1 设置默认 Shell 为 Zsh(建议执行一次)

chsh -s "$(command -v zsh)"

重新登录 SSH 后就会默认进入 zsh。


7. 安装 Fail2Ban:防 SSH 暴力破解

Fail2Ban 会监控日志,发现短时间内多次失败登录,就自动封 IP。

7.1 安装

apt update
apt install -y fail2ban

7.2 创建并编辑 jail.local

Fail2Ban 推荐用 /etc/fail2ban/jail.local 覆盖默认配置:

vim /etc/fail2ban/jail.local

写入(你给的 sshd 配置原样保留):

[sshd]
enabled  = true
port     = 2134
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3
bantime  = 3600
findtime = 600

说明:

  • port = 2212:你的 SSH 端口是 2212(如果你实际不是这个端口,记得改成真实端口)

  • maxretry = 3:10 分钟内失败 3 次就封

  • bantime = 3600:封 60 分钟

  • findtime = 600:统计窗口 10 分钟

7.3 重启并设置开机启动

systemctl enable fail2ban
systemctl restart fail2ban

(可选)检查状态:

systemctl status fail2ban --no-pager
fail2ban-client status
fail2ban-client status sshd

8. 最终效果与常见注意事项

  • Zsh + OMZ + Spaceship:提示符更清晰,git 状态等信息一眼可见

  • autosuggestions:历史命令秒补全

  • syntax-highlighting:命令对错颜色直接提示,减少手滑

  • Fail2Ban:SSH 爆破明显减少,日志更干净

注意:

  • zsh-syntax-highlightingsource ... 建议放在 .zshrc 的末尾(高亮插件通常需要最后加载,避免被其他插件覆盖效果)。

  • 如果你发现 source /usr/share/... 报路径不存在,说明你系统里的安装路径不同:用 dpkg -L zsh-syntax-highlighting | grep zsh-syntax-highlighting.zsh 找到真实路径再改。