diff --git a/lib/pkgcloud/core/compute/bootstrapper.js b/lib/pkgcloud/core/compute/bootstrapper.js
index <HASH>..<HASH> 100644
--- a/lib/pkgcloud/core/compute/bootstrapper.js
+++ b/lib/pkgcloud/core/compute/bootstrapper.js
@@ -178,6 +178,11 @@ Bootstrapper.prototype.createServer = function (options) {
       createOptions.flavor = options.flavorId;
     }
 
+    // XXX(mmalecki): DigitalOcean-specific
+    if (options.keyIds) {
+      createOptions.keyIds = options.keyIds;
+    }
+
     //
     // Remark: If there are any parameters specific to this
     // compute provider then set them appropriately before
diff --git a/lib/pkgcloud/digitalocean/compute/client/servers.js b/lib/pkgcloud/digitalocean/compute/client/servers.js
index <HASH>..<HASH> 100644
--- a/lib/pkgcloud/digitalocean/compute/client/servers.js
+++ b/lib/pkgcloud/digitalocean/compute/client/servers.js
@@ -115,6 +115,11 @@ exports.createServer = function createServer(options, callback) {
     ? options.image.id
     : options.image;
 
+  // XXX(mmalecki) Integrate with existing keys API
+  if (options.keyIds) {
+    createOptions.qs.ssh_key_ids = options.keyIds.join(',');
+  }
+
   return this.request(createOptions, function (err, body, res) {
     return err
       ? callback(err)
[api] Pass `ssh_key_ids` to DigitalOcean