我正在尝试编写虚拟机创建和设置过程的脚本。
当前该脚本多次询问我的ssh密码。
是否有一种方法可以在脚本开头输入一次密码并完成?
这是第一个脚本:
gcloud -q compute instances create $VM_NAME \
--zone=$ZONE \
--machine-type=n1-standard-1 \
--image-project=ml-images \
--image-family=tf-1-14 \
--scopes=cloud-platform \
--boot-disk-size=24GB \
&& \
echo vm created \
&& \
gcloud -q compute scp --recurse \
~/altered-source/ $VM_NAME:~ \
--zone=$ZONE \
&& \
gcloud -q compute scp --recurse \
~/vm-scripts/ $VM_NAME:~ \
--zone=$ZONE \
&& \
echo files transfered \
&& \
gcloud -q compute ssh $VM_NAME \
--zone=$ZONE
答案 0 :(得分:0)
请提供一些有关如何尝试此操作的详细信息。
默认情况下,如果您使用http
,则会自动为您生成一个ssh密钥对,并将其存储在元数据服务中,以便您可以无缝ssh进行ssh加密,例如
gcloud
以编程方式重新创建实例的更好方法是开发启动脚本,然后在创建过程中将其传递给实例:
https://cloud.google.com/sdk/gcloud/reference/compute/instances/create#startup-script
答案 1 :(得分:0)
Y! 明确地,将存储桶用于该内部传输物品;您会看到自己一路得到更好的控制和更快的响应。
如果您真的需要使用“第三条腿”,也许使用本地计算机可以工作,则只需安装SDK并使用gcloud命令,一旦在本地和远程VM之间交换密钥,它就不会要求您提供密钥,警告?您依靠您的ISP上/下速度,您知道的好消息以及上载文件需要多长时间来完成。
现在,我再次建议像这里其他人一样,使用云存储桶,这样,您只需要将文件引用为gs:/// file即可,而省去了其余部分。
无论如何,here是有关将文件传输到实例的一些信息。
祝您有美好的一天! -JP