我正在使用python-digitalocean在DO上创建液滴。我无法将SSH密钥附加到液滴上

时间:2019-05-01 09:09:18

标签: digital-ocean

我正在尝试使用python-digitalocean库使用SSH密钥创建Droplet。由于某些原因,ssh密钥未附加到新创建的液滴上。

任何想法我该怎么办?

1 个答案:

答案 0 :(得分:0)

python-digitalocean在创建新的Droplet时接受多种格式的SSH密钥。要记住的一件事是,即使仅添加一个键,该属性也必须采用列表形式。

这是一个简单的例子:

import os
import digitalocean

token = os.getenv('DO_TOKEN')
client = digitalocean.Manager(token=token)

keys = client.get_all_sshkeys()

droplet = digitalocean.Droplet(name='ssh-key-example-01',
                                     region='nyc3',
                                     size='s-1vcpu-1gb',
                                     image='ubuntu-18-04-x64',
                                     ssh_keys=[ keys[0], 3939600,
                                       'b6:2e:fa:ea:96:42:14:1b:62:e2:76:4b:6f:60:1a:e6'],
                                     token=token)

此示例突出显示了可以接受的三种形式:

  • keys[0]是使用client.get_all_sshkeys()
  • 检索的SSHKey对象。
  • 3939600是我的DigitalOcean帐户上的SSH密钥的ID,为整数
  • b6:2e:fa:ea:96:42:14:1b:62:e2:76:4b:6f:60:1a:e6是我的DigitalOcean帐户上SSH密钥的指纹

如果要将帐户上的所有密钥添加到Droplet,最简单的方法是:

keys = client.get_all_sshkeys()

droplet = digitalocean.Droplet(name='ssh-key-example-01',
                               region='nyc3',
                               size='s-1vcpu-1gb',
                               image='ubuntu-18-04-x64',
                               ssh_keys=keys,
                               token=token)

这有效,因为client.get_all_sshkeys()已将它们返回到列表中。