在 KPCOS/YanDi 1.01 上配置 Dropbear 使用密钥登录

在 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:手动复制

  1. 查看公钥内容:
    cat ~/.ssh/dropbear_key.pub
  2. 在服务器上创建授权文件:
    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 (需临时开启密码登录)

  1. 临时允许密码登录(编辑 /etc/default/dropbear 移除 -s 参数)
  2. 复制密钥:
    ssh-copy-id -i ~/.ssh/dropbear_key.pub user@your_server_ip
  3. 完成后重新禁用密码登录

步骤 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-rsassh-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

安全加固建议

  1. 更改默认端口

    # /etc/default/dropbear
    DROPBEAR_PORT=2222
    sudo ufw allow 2222
  2. 添加登录横幅

    sudo nano /etc/dropbear/banner

    内容示例:

    WARNING: Unauthorized access prohibited!
  3. 限制用户访问

    sudo nano /etc/shells

    添加有效 shell(如 /bin/bash),然后:

    sudo usermod -s /usr/sbin/nologin username
  4. 自动更新

    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)

⚠️ 重要提醒
在禁用密码登录前,请确保密钥登录正常工作!建议保留另一个活动会话以防配置错误导致锁定。

此配置提供:

  • ✅ 基于密钥的安全认证
  • ✅ 禁用密码登录
  • ✅ 限制端口转发
  • ✅ 系统级密钥管理(非用户级)
  • ✅ 兼容嵌入式设备和资源受限环境

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

zh_CN简体中文