Amazon ec2 EC2如何从您的密钥对安装公钥?
我正在调试自定义AMI的创建,不清楚EC2是如何将密钥对的公钥安装到AMI上的。。。我假定它进入~someuser/.ssh/authorized_密钥,但我无法确定这是否在每次启动时都只执行一次,或者如何确定目标用户。更具体地说,Amazon ec2 EC2如何从您的密钥对安装公钥?,amazon-ec2,Amazon Ec2,我正在调试自定义AMI的创建,不清楚EC2是如何将密钥对的公钥安装到AMI上的。。。我假定它进入~someuser/.ssh/authorized_密钥,但我无法确定这是否在每次启动时都只执行一次,或者如何确定目标用户。更具体地说,cloud init是一个Python模块,每次实例启动时都会运行 您可以在此处浏览代码: /usr/lib/python2.7/dist-packages/cloudinit 获取密钥的部分是DataSource.py和DataSourceEc2.py文件。他们
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
格式配置文件
有关cloud init的更多信息,您可以在此处阅读他们的公共文档:
希望这能有所帮助。它使用了一个名为cloud init的系统。我认为元数据服务上也提供了密钥。