diff --git a/lib/ansible/modules/cloud/misc/proxmox.py b/lib/ansible/modules/cloud/misc/proxmox.py
index 6c727cd2e3d..5b507b495d7 100644
--- a/lib/ansible/modules/cloud/misc/proxmox.py
+++ b/lib/ansible/modules/cloud/misc/proxmox.py
@@ -175,6 +175,13 @@ options:
      - Indicate desired state of the instance
     choices: ['present', 'started', 'absent', 'stopped', 'restarted']
     default: present
+  pubkey:
+    description:
+      - Public key to add to /root/.ssh/authorized_keys. This was added on Proxmox 4.2, it is ignored for earlier versions
+    version_added: "2.3"
+    default: null
+    required: false
+
 notes:
   - Requires proxmoxer and requests modules on host. This modules can be installed with pip.
 requirements: [ "proxmoxer", "python >= 2.7", "requests" ]
@@ -329,6 +336,7 @@ def node_check(proxmox, node):
 def create_instance(module, proxmox, vmid, node, disk, storage, cpus, memory, swap, timeout, **kwargs):
   proxmox_node = proxmox.nodes(node)
   kwargs = dict((k,v) for k, v in kwargs.items() if v is not None)
+
   if VZ_TYPE =='lxc':
       kwargs['cpulimit']=cpus
       kwargs['rootfs']=disk
@@ -338,9 +346,14 @@ def create_instance(module, proxmox, vmid, node, disk, storage, cpus, memory, sw
       if 'mounts' in kwargs:
         kwargs.update(kwargs['mounts'])
         del kwargs['mounts']
+      if 'pubkey' in kwargs:
+        if float(proxmox.version.get()['version']) >= 4.2:
+          kwargs['ssh-public-keys'] = kwargs['pubkey']
+        del kwargs['pubkey']
   else:
       kwargs['cpus']=cpus
       kwargs['disk']=disk
+
   taskid = getattr(proxmox_node, VZ_TYPE).create(vmid=vmid, storage=storage, memory=memory, swap=swap, **kwargs)
 
   while timeout:
@@ -428,6 +441,7 @@ def main():
           timeout = dict(type='int', default=30),
           force = dict(type='bool', default='no'),
           state = dict(default='present', choices=['present', 'absent', 'stopped', 'started', 'restarted']),
+          pubkey = dict(type='str', default=None)
           )
   )
 
@@ -502,7 +516,9 @@ def main():
                       cpuunits = module.params['cpuunits'],
                       nameserver = module.params['nameserver'],
                       searchdomain = module.params['searchdomain'],
-                      force = int(module.params['force']))
+                      force = int(module.params['force']),
+                      pubkey = module.params['pubkey']
+                 )
 
       module.exit_json(changed=True, msg="deployed VM %s from template %s"  % (vmid, module.params['ostemplate']))
     except Exception as e: