树莓派默认pi用户安全实践:从风险解析到SSH密钥认证

📅 2026/8/19 23:32:41
树莓派默认pi用户安全实践:从风险解析到SSH密钥认证
1. 树莓派OS中的“pi”用户从默认账户到安全实践如果你刚拿到一块树莓派第一次启动系统屏幕上提示你登录那个默认的用户名就是“pi”。这个看似简单的“pi”用户远不止是一个进入系统的通行证。对于无数开发者、创客和学生来说它是通往单板计算机世界的第一道门也是许多安全风险的起点。今天我们就来彻底拆解这个默认的“pi”用户聊聊它为什么存在如何使用它以及更重要的是为什么和如何超越它。在树莓派OS原名Raspbian的漫长历史中“pi”用户和其默认密码“raspberry”几乎成了一个标志性的组合。它极大地降低了入门门槛让用户无需经历复杂的初始账户配置就能直接上手。然而正是这种便利性在设备接入网络后带来了巨大的安全隐患。一个使用默认凭证的树莓派在互联网上几乎是“裸奔”的。理解“pi”用户不仅是为了登录更是为了建立一套安全、高效、符合生产环境标准的用户管理体系。无论你是用它做家庭媒体中心、物联网网关还是小型服务器正确处理这个默认账户都是至关重要的第一步。2. “pi”用户的深度解析设计初衷与潜在风险2.1 默认账户的由来与设计哲学树莓派基金会创建“pi”这个默认用户的初衷根植于其教育普惠和降低技术门槛的核心使命。在早期让一个对Linux命令行一无所知的新手去完成系统安装、创建第一个用户、设置密码等一系列操作是令人望而生畏的。因此一个开箱即用、无需任何配置的账户变得至关重要。“pi”这个用户名本身也颇具巧思。它直接指向树莓派Raspberry Pi的名称简单好记同时也致敬了数学常数π暗示了其与计算和教育的紧密联系。默认密码“raspberry”同样遵循了易记性原则。这套组合使得用户从拆开包装到启动系统、运行第一个命令整个过程可以控制在几分钟之内。这种极致的用户体验设计是树莓派能够风靡全球成为教育、创客领域标杆产品的重要原因之一。从技术实现上看这个用户是在操作系统镜像构建阶段就被预创建的。它的用户IDUID通常是1000这是许多Linux发行版为第一个普通用户预留的UID。它被预先加入了多个关键用户组例如pi 用户的主组。adm 允许读取系统日志。dialout 允许访问串行端口对GPIO操作很重要。cdrom 允许访问光驱设备。sudo这是最关键的一个。pi用户默认拥有sudo权限意味着它可以执行任何需要超级用户root权限的命令。这赋予了用户对系统的完全控制能力方便进行软件安装、系统配置等操作。这种“高权限默认用户”的设计是一把双刃剑。它提供了无与伦比的便利性但也意味着如果这个账户被攻破攻击者将直接获得系统的最高控制权。2.2 安全风险全景图为什么必须修改默认设置让“pi”用户保持默认密码“raspberry”可能是你在树莓派上会犯的最危险的错误。其风险主要来自以下几个方面自动化攻击扫描 互联网上存在大量僵尸网络和恶意脚本它们24小时不间断地扫描公网IP段专门寻找开放SSH端口22的设备并尝试使用“pi/raspberry”等常见默认凭证进行登录。一旦成功你的树莓派就会成为“肉鸡”被用来发起DDoS攻击、挖掘加密货币或作为跳板攻击内网其他设备。局域网内的风险 即使你的树莓派没有公网IP只在家庭或公司局域网内使用风险依然存在。如果局域网内有一台设备感染了恶意软件它同样会扫描内网尝试用默认密码入侵其他设备。在共享办公或实验室环境中这种风险尤其高。物理访问风险 如果设备可能被他人物理接触例如在教室、展览或公共空间默认密码无法提供任何保护。任何人只要接上显示器和键盘就能以pi用户身份完全掌控系统。权限滥用风险 由于pi用户默认拥有sudo权限任何以该身份运行的恶意脚本或误操作都可能对系统造成毁灭性影响例如误删系统文件、修改关键配置等。注意 我曾在一个项目中发现一台用于展示的树莓派因为一直使用默认密码在连入展会Wi-Fi后的两小时内就被植入了挖矿程序导致CPU持续满载设备烫得无法触摸。这绝不是危言耸听。因此处理“pi”用户的第一步永远应该是立即修改其默认密码并在此基础上根据使用场景考虑更彻底的安全加固措施例如禁用该用户或创建新的专属管理员账户。3. 基础操作安全配置“pi”用户的核心步骤3.1 首次启动与密码修改当你第一次启动树莓派OS使用Raspberry Pi Imager工具烧录并已预配置Wi-Fi和SSH的镜像除外系统可能会直接进入桌面环境或者提供一个首次设置向导。无论哪种方式修改pi用户密码都是首要任务。如果你已经进入了命令行登录界面登录后的第一件事就是改密码。操作非常简单# 登录后执行以下命令 passwd系统会提示你输入当前的密码raspberry然后连续两次输入新的强密码。这里有一个关键点在命令行输入密码时光标不会移动也不会显示星号*这是正常的安全设计你只需正常键入然后回车即可。如果你使用的是带有桌面的版本可以通过菜单进入“首选项” - “Raspberry Pi 配置” - “系统”选项卡点击“更改密码”按钮进行修改。创建强密码的技巧避免使用字典单词、生日、raspberry的变体。建议使用由多个不相关的单词组成的“密码短语”中间用特殊字符连接例如BlueCoffee$MountainSunset。它足够长便于记忆且难以被暴力破解。更好且更安全的方法是完全放弃密码改用SSH密钥对认证我们将在后面详细讨论。3.2 理解“pi”用户的权限与用户组如前所述pi用户之所以强大是因为它被添加到了sudo组。你可以通过以下命令查看pi用户所属的所有组groups pi或者查看当前用户所属组groups你会看到类似pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi的输出。这意味着pi用户可以sudo 执行管理员命令。dialout,gpio,i2c,spi 访问串口和硬件接口这是进行电子项目的基础。audio,video 访问音频和视频设备。adm 查看系统日志。理解这些组权限非常重要。当你未来创建新用户并希望其拥有类似pi用户的硬件控制能力时你需要手动将其加入相应的组。例如要让新用户myuser能使用GPIO和sudo需要执行sudo usermod -aG gpio,i2c,spi,sudo myuser这里的-aG参数表示“追加Append到以下用户组Groups”避免覆盖用户原有的其他组。4. 进阶安全实践超越默认“pi”用户仅仅修改密码是不够的。对于任何计划长期运行、尤其是可能暴露在网络中的树莓派采取更深层的安全措施是必要的。我们的目标是最小权限原则和纵深防御。4.1 方案一创建新的管理员用户并禁用“pi”用户这是最推荐的做法它完全移除了那个众所周知的默认账户。步骤1创建新用户并赋予sudo权限# 创建一个新用户例如名为 ‘admin’ sudo adduser admin # 按照提示设置密码、填写信息其他信息可直接回车跳过 # 将新用户加入sudo组 sudo usermod -aG sudo admin # 同时根据你的项目需要将其加入必要的硬件访问组 sudo usermod -aG gpio,i2c,spi,adm,dialout admin步骤2使用新用户登录并测试sudo权限退出当前pi用户的会话用新用户admin重新登录。然后测试sudo权限是否生效sudo whoami如果返回root说明sudo配置成功。步骤3禁用或删除“pi”用户在确认新用户可以正常工作后再来处理pi用户。推荐方案禁用账户。这比删除更安全保留了回滚的可能。sudo passwd -l pi这个命令会锁定pi用户的密码使其无法登录。但该用户的家目录(/home/pi)和文件都还在。未来如果需要可以用sudo passwd -u pi解锁。激进方案删除账户。如果你确定不再需要。sudo deluser --remove-home pi--remove-home选项会同时删除/home/pi目录及其所有内容。执行此操作前请务必确认已备份/home/pi目录下所有重要文件如项目代码、配置等。4.2 方案二彻底禁用密码登录启用SSH密钥认证对于需要通过SSH远程访问的树莓派这是比任何复杂密码都更安全的方法。它基于非对称加密几乎不可能被暴力破解。步骤1在本地电脑生成SSH密钥对在你的个人电脑客户端上操作ssh-keygen -t ed25519 -C “your_emailexample.com”-t ed25519指定使用更安全、更快的Ed25519算法。你也可以使用-t rsa -b 4096。命令会提示你输入保存密钥的文件名和密码短语passphrase。密码短语是为私钥再加一层保护即使私钥文件泄露没有短语也无法使用。步骤2将公钥上传到树莓派假设你的树莓派IP是192.168.1.100用户是adminssh-copy-id -i ~/.ssh/id_ed25519.pub admin192.168.1.100输入admin用户的密码公钥就会被自动添加到树莓派上/home/admin/.ssh/authorized_keys文件中。步骤3配置SSH服务端禁用密码登录登录树莓派编辑SSH配置文件sudo nano /etc/ssh/sshd_config找到并修改以下行PasswordAuthentication no PubkeyAuthentication yes保存退出CtrlX 然后Y 回车。重启SSH服务sudo systemctl restart ssh重要警告在进行此操作前务必先用新创建的SSH密钥成功登录一次确保密钥认证工作正常。否则一旦禁用密码而你密钥又没配好你将永远无法远程登录4.3 其他关键加固措施更改默认SSH端口 将SSH端口从22改为一个大于1024的非知名端口可以避开大部分自动化扫描。# /etc/ssh/sshd_config Port 2222 # 示例端口修改后记得重启SSH并在防火墙中开放新端口。配置防火墙 使用ufwUncomplicated Firewall轻松管理。sudo apt install ufw sudo ufw default deny incoming # 默认拒绝所有入站 sudo ufw default allow outgoing # 默认允许所有出站 sudo ufw allow 2222/tcp # 允许新的SSH端口 sudo ufw enable # 启用防火墙定期更新系统 安全漏洞会不断被修复。sudo apt update sudo apt upgrade -y可以配置一个定时任务cron job每周自动执行安全更新。5. 故障排除与常见问题实录在实际操作中你可能会遇到一些典型问题。以下是我在多次部署中总结的排查清单。5.1 用户与权限类问题问题1新用户无法使用GPIO/I2C等硬件接口。症状运行Python的RPi.GPIO或smbus库时提示权限拒绝。原因用户未加入对应的硬件访问组gpio,i2c,spi等。解决sudo usermod -aG gpio,i2c,spi 你的用户名注意修改组后用户需要完全注销并重新登录或重启系统新的组权限才会生效。仅仅新开一个终端窗口是不够的。问题2执行sudo命令时要求输入密码但输入后提示“密码错误”。症状确认密码正确但sudo就是不认。原因最常见的原因是键盘布局问题。树莓派OS默认是英式键盘布局GB如果你的物理键盘是美式US或其他布局在输入某些字符如、”、~时实际输入的字符可能不同。解决使用raspi-config工具临时更改键盘布局sudo raspi-config-Localisation Options-Keyboard。在输入密码时尝试使用最简单的数字和字母组合排除符号干扰。或者直接在另一个终端窗口用passwd命令修改当前用户密码为一个纯字母数字密码再用新密码尝试sudo。问题3误删“pi”用户后发现有些服务无法启动。症状某些脚本或服务如一些自行安装的守护进程可能硬编码了以pi用户身份运行。解决检查服务配置文件通常在/etc/systemd/system/或/lib/systemd/system/下查看User字段。将其修改为你的新管理员用户名。重新加载systemd并重启服务sudo systemctl daemon-reload sudo systemctl restart 服务名。5.2 SSH连接类问题问题1启用密钥登录并禁用密码后自己也无法连接。症状ssh -p 2222 adminip连接超时或被拒绝。排查思路确认IP和端口使用hostname -I查看树莓派IP确认ssh命令中的端口号与sshd_config中设置的一致。确认服务状态在树莓派本地执行sudo systemctl status ssh确保服务是active (running)。确认防火墙如果改了端口确保新端口在防火墙ufw或iptables中是允许的。可以临时关闭防火墙测试sudo ufw disable。检查客户端密钥确认ssh命令使用了正确的私钥文件ssh -i ~/.ssh/my_key -p 2222 adminip。检查服务端授权文件权限~/.ssh/authorized_keys的权限应为600~/.ssh目录权限应为700。权限错误会导致SSH拒绝使用密钥。终极恢复方法如果以上都失败且你无法物理接触设备那就“砖”了。这强调了在禁用密码前必须用密钥成功登录一次的重要性。物理恢复需要接上显示器和键盘以本地终端方式登录修改配置。问题2SSH连接缓慢。症状输入命令后要等待很久才出现密码提示或建立连接。原因SSH服务端可能正在尝试进行DNS反向解析客户端IP如果DNS服务器不通或慢就会卡住。解决在树莓派的/etc/ssh/sshd_config中增加一行UseDNS no然后重启SSH服务。5.3 系统维护与最佳实践清单为了避免未来陷入麻烦这里提供一份日常维护清单事项命令/操作频率说明系统更新sudo apt update sudo apt upgrade -y每周获取安全补丁和软件更新。检查磁盘空间df -h每月确保根目录有足够空间避免系统崩溃。查看失败登录sudo journalctl -u sshgrep “Failed password”需要时备份关键配置sudo tar -czf /backup/etc_backup.tar.gz /etc重大修改前将/etc目录备份到安全位置。检查运行进程htop或 ps auxgrep -v “[“需要时轮换日志日志系统自动管理-确保/var/log不会撑满磁盘。最后关于“pi”用户我个人的体会是它是一位优秀的“引路人”但绝不是一个合格的“长期室友”。它的存在是为了让你快速启航而你的责任是在启航后立即加固你的船舰。花上半小时完成用户和安全配置是对你投入在树莓派项目上的所有时间和心血最基本、最划算的投资。从修改默认密码开始逐步实施密钥登录、创建专属用户、配置防火墙你会建立起应对真实网络环境的安全意识这才是从创客玩具迈向生产工具的关键一步。