You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在创建Digital Ocean Droplet时取消密码,仅用SSH密钥访问

解决DigitalOcean Droplet创建后自动生成密码的问题

要实现仅通过SSH密钥访问、取消系统自动生成并发送的root密码,需从API调用配置和Droplet后续验证两方面入手:

一、API调用时的关键配置

在通过Java调用DigitalOcean API创建Droplet时,必须确保请求满足以下要求:

  • 正确传入已注册的SSH密钥:在请求体的ssh_keys数组中,填入你在DigitalOcean账户中预先注册的SSH密钥ID或指纹(两种格式均可)。
  • 显式禁用密码认证:添加enable_password_auth字段并设置为false,强制关闭密码登录通道。

Java请求体示例

String createDropletPayload = "{\n" +
    "  \"name\": \"my-ssh-only-droplet\",\n" +
    "  \"region\": \"sgp1\",\n" +
    "  \"size\": \"s-1vcpu-1gb\",\n" +
    "  \"image\": \"debian-12-x64\",\n" +
    "  \"ssh_keys\": [123456, \"00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff\"],\n" +
    "  \"enable_password_auth\": false\n" +
    "}";

注意:请求头需携带你的DigitalOcean API密钥,格式为Authorization: Bearer YOUR_API_KEY

二、Droplet创建后的验证与修复

如果API调用后仍收到密码邮件,登录Droplet进行以下检查:

  1. 编辑SSH配置文件/etc/ssh/sshd_config,确保以下参数设置正确:
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    PermitRootLogin prohibit-password
    
  2. 重启SSH服务使配置生效:
    sudo systemctl restart sshd
    

常见问题排查

  • 若ssh_keys字段传入的密钥ID/指纹未在DO账户注册,API会忽略该配置,自动生成密码。可在DO控制台的「SSH密钥」页面核对密钥信息。
  • 避免在user_data字段中设置root密码,这会覆盖无密码登录的配置。

内容的提问来源于stack exchange,提问作者EAOE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:52:08