在 KPCOS/YanDi 1.01 上配置 Dropbear 使用密钥登录的完整指南如下(Dropbear 是轻量级 SSH 服务器,适用于资源受限环境):
步骤 1:安装 Dropbear
sudo apt update
sudo apt install dropbear
步骤 2:生成 SSH 密钥对(客户端操作)
在您的本地机器上生成密钥:
ssh-keygen -t ed25519 -f ~/.ssh/dropbear_key
# 或使用 RSA:ssh-keygen -t rsa -b 4096 -f ~/.ssh/dropbear_key
步骤 3:配置 Dropbear 服务
编辑配置文件:
sudo nano /etc/default/dropbear
修改以下参数:
# 启用 SSH 服务
NO_START=0
# 监听端口(默认 22)
DROPBEAR_PORT=22
# 启用公钥认证(关键!)
DROPBEAR_EXTRA_ARGS="-s -j -k"
# 其他推荐安全设置
DROPBEAR_BANNER="/etc/dropbear/banner"
参数说明:
-s
:禁用密码登录(强制密钥认证)-j
:禁用本地端口转发-k
:禁用远程端口转发
步骤 4:将公钥复制到服务器
方法 A:手动复制
- 查看公钥内容:
cat ~/.ssh/dropbear_key.pub
- 在服务器上创建授权文件:
sudo mkdir -p /etc/dropbear echo "ssh-ed25519 AAAAC3Nz... your_comment" | sudo tee -a /etc/dropbear/authorized_keys # 或使用:sudo nano /etc/dropbear/authorized_keys
方法 B:使用 ssh-copy-id
(需临时开启密码登录)
- 临时允许密码登录(编辑
/etc/default/dropbear
移除-s
参数) - 复制密钥:
ssh-copy-id -i ~/.ssh/dropbear_key.pub user@your_server_ip
- 完成后重新禁用密码登录
步骤 5:设置文件权限
sudo chmod 644 /etc/dropbear/authorized_keys
sudo chown root:root /etc/dropbear/authorized_keys
步骤 6:重启 Dropbear 服务
sudo systemctl restart dropbear
步骤 7:测试密钥登录
ssh -i ~/.ssh/dropbear_key user@your_server_ip
步骤 8:完全禁用密码登录(可选但推荐)
编辑 /etc/default/dropbear
确保包含:
DROPBEAR_EXTRA_ARGS="-s -j -k"
步骤 9:防火墙配置
sudo ufw allow 22
sudo ufw enable
故障排除
1. 登录失败:Permission denied (publickey)
- 检查公钥格式:Dropbear 只支持
ssh-rsa
或ssh-ed25519
# 转换 OpenSSH 密钥为 Dropbear 格式 dropbearconvert openssh dropbear ~/.ssh/dropbear_key ~/.ssh/dropbear_key_db
- 验证文件权限:
sudo chmod 700 /etc/dropbear sudo chmod 600 /etc/dropbear/authorized_keys
2. 密钥类型不支持
如果使用较新的 OpenSSH 密钥格式:
# 生成兼容的 RSA 密钥
ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/dropbear_rsa_key
3. 查看日志
sudo journalctl -u dropbear -f
安全加固建议
-
更改默认端口:
# /etc/default/dropbear DROPBEAR_PORT=2222
sudo ufw allow 2222
-
添加登录横幅:
sudo nano /etc/dropbear/banner
内容示例:
WARNING: Unauthorized access prohibited!
-
限制用户访问:
sudo nano /etc/shells
添加有效 shell(如
/bin/bash
),然后:sudo usermod -s /usr/sbin/nologin username
-
自动更新:
sudo apt install unattended-upgrades sudo dpkg-reconfigure unattended-upgrades
最终验证
# 成功登录
ssh -i ~/.ssh/dropbear_key -p 2222 user@server_ip
# 测试密码登录应失败
ssh user@server_ip
# 应返回:Permission denied (publickey)
⚠️ 重要提醒:
在禁用密码登录前,请确保密钥登录正常工作!建议保留另一个活动会话以防配置错误导致锁定。
此配置提供:
- ✅ 基于密钥的安全认证
- ✅ 禁用密码登录
- ✅ 限制端口转发
- ✅ 系统级密钥管理(非用户级)
- ✅ 兼容嵌入式设备和资源受限环境
发表回复