这并不能完全回答您的问题,但我想向您展示另一种将 SSH 密钥放在服务器上的方法,即使用 Rackspace API 自动化。例如,如果您使用的是pyrax:
import pyrax
import os
pyrax.set_setting("identity_type", "rackspace")
pyrax.set_setting("username", USER_NAME) # User name
pyrax.set_setting("api_key", API_KEY) # Located in the control panel in settings
# Could also use a credential file
# pyrax.set_credential_file(os.path.expanduser("~/.rackspace_cloud_credentials"))
# Put your SSH key on the Rackspace cloud
pubkey = open("my_priv_key").read()
cs.keypairs.create("testkey", pubkey)
# For demo purposes, grab a sample image, server type (flavor in OpenStack parlance)
flavor_512 = [flavor for flavor in cs.flavors.list() if flavor.ram == 512][0]
ubu_image = [img for img in cs.images.list() if "Ubuntu 12.04" in img.name][0]
# Now we can create the server and assign an ssh key
server = cs.servers.create("ubbie", ubu_image.id, flavor_512.id,
key_name="testkey")
您的 API 密钥位于云控制面板中的设置和联系人中,在安全问题下方:
建好服务器后,你应该可以获取到 IP 地址
server = cs.servers.get(server.id)
ip = server.accessIPv4
然后只需使用您指定的密钥以 root 身份 ssh。
ssh -i my_priv_key root@<ip>
如果 Python 不是您的首选语言,还有其他选择。如果这是你的事,你也可以直接请求/使用 curl,因为这是Rackspace API和OpenStack/nova 的一部分。