我正在调试自定义AMI的创建,但我不清楚EC2实际上是如何将您的密钥对的公钥安装到您的AMI上的......我认为它会进入〜someuser/.ssh/authorized_keys,但我无法弄清楚如果这只是完成一次,每次启动,或目标用户如何确定。EC2如何从您的密钥对安装公钥?
12
A
回答
15
更具体地cloud-init
是一个Python模块,每次启动实例时都会运行。
您可以通过这里的代码浏览:
/usr/lib/python2.7/dist-packages/cloudinit
他们那部分拿到钥匙是DataSource.py
和DataSourceEc2.py
文件。他们使用URL查询元数据:http://169.254.169.254/2011-01-01/meta-data/public-keys/
。
找到使用该URL的密钥列表,然后从中选择一个。 (通常是一个)。最终他们查询:http://169.254.169.254/2011-01-01/meta-data/public-keys/0/openssh-key/
然后他们将该密钥复制到默认的cloud-init用户的~/.ssh/authorized_keys
文件中。
默认的cloud-init用户(以及所有cloud-init配置)在/etc/cloud/cloud.cfg文件中定义。这摘录一个cloud.cfg文件:
user: ubuntu
disable_root: 1
preserve_hostname: False
# datasource_list: ["NoCloud", "ConfigDrive", "OVF", "MAAS", "Ec2", "CloudStack"]
cloud_init_modules:
- bootcmd
- resizefs
- set_hostname
- update_hostname
- update_etc_hosts
- ca-certs
- rsyslog
- ssh
cloud_config_modules:
- disk-setup
- mounts
- ssh-import-id
- locale
- set-passwords
- grub-dpkg
...
这基本上是一个yaml
格式的配置文件。
有关更多信息,云计算的初始化,您可以在这里阅读他们的公开文档:
http://cloudinit.readthedocs.org/en/latest/index.html
希望这有助于。
+0
辉煌,谢谢! – apinstein
相关问题
- 1. 如何查找AWS密钥对公钥?
- 2. 从EVP_PKEY密钥对提取公钥?
- 3. 安全地分发ec2密钥对
- 4. 如何更改EC2公钥?
- 5. 如何从密钥库中读取私钥和公钥密钥库
- 6. AWS EC2密钥对设置
- 7. EC2临时密钥对
- 8. 如何从密钥中的公钥获取密码
- 9. 如何生成64位公钥加密密钥对
- 10. c#的RSA公共密钥的公钥#
- 11. AWS EC2 SSH密钥
- 12. SWCrypt公钥VS PKCS8PEM密钥
- 13. 公钥加密的密钥库
- 14. 如何与公共密钥
- 15. 对称和公钥加密
- 16. 定期对公共密钥
- 17. 导入公私密钥对
- 18. 公钥加密
- 19. 公钥加密
- 20. EC2实例不接受新的密钥对 - 权限被拒绝(公钥)
- 21. 连接到MQ使用安全密钥(公钥和私钥)
- 22. 如何从perl中的RSA256公钥中提取n,e密钥?
- 23. 公钥和私钥API密钥
- 24. NPM安装 - 保存密钥
- 25. 提取从OpenSSL的密钥文件的公钥和私钥
- 26. 如何使用短数据公钥/私钥不对称密码
- 27. 如何使用公钥/私钥对来加密SSO令牌?
- 28. 私钥加密公钥加密
- 29. 如何从现有密钥设置新密钥:defaultdict的值对?
- 30. Amazon AWS密钥对不再安全使用。如何在ec2实例上禁用/替换此密钥对?
它使用一个名为cloud-init的系统。我认为元数据服务上也有关键。 – datasage