![](/img/trans.png)
[英]Shell script which copy the file from another server to my box using SFTP without prompting for a password
[英]Using packer to copy file from host to generated image without password
我目前正在使用packer从给定配置生成自定义图像。 packer .json
文件包含本包装程序教程中描述的条款。
我没有在那里输入命令,而是使用shell选项,我可以在其中编写一堆sudo apt-get install
命令来自定义图像。
问题是我需要将文件从我拥有的计算机复制到图像中。 要清楚,我拥有的计算机也是我正在运行命令packer build example.json
。
在shell脚本中,如何进行安全复制,以便从新创建的图像的角度来看 ,图像可以安全地将文件从我的计算机复制到自身, 而无需输入密码? 这是一个shell脚本,所以如果我愿意,我就无法输入。
我知道为了避免输入密码,我需要公钥/私钥验证。 在shell脚本中,我有:
sudo ssh-keygen -t rsa -b 2048
sudo scp ~/.ssh/id_rsa.pub user@example.com:/home/user/.ssh/uploaded_key.pub
sudo ssh user@example.com "echo `cat ~/.ssh/uploaded_key.pub` >> ~/.ssh/authorized_keys"
(摘自此处和其他地方的示例 。我对此的理解是生成的图像正在运行这些命令。)
我在StackOverflow上看到的这个和许多方法的问题,例如与这个相关的问题 ,是两件事之一。
ssh
或scp
键入显式AMI ID的其他方法似乎不起作用。 一个密切相关的问题使用“文件”提供类型,但我想用“shell”类型执行此操作,我不知道如何使用文件和shell选项。
我怎么解决这个问题?
您应该使用file
配置器,例如:
"provisioners": [
{
"type": "file",
"source": "source_file",
"destination": "dest"
},
{
"type": "script",
"inline": [ "echo do something here" ]
}
]
请参阅文档:供应商
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.