为什么 vagrant 在将 box_url 选项与 scp 一起使用时不使用我的 ssh 配置
Why wont vagrant use my ssh config when using the box_url option with scp
我正在尝试分发一个打包的基本盒,我想使用我现有的一台全球开发人员可以通过 pem 文件访问的服务器。
我知道 vag运行t 云,但在这种情况下这不是一个选项。
看起来打包的 curl 命令确实支持 scp
但出于某种原因它不尊重我在 ~/.ssh/config
中的值并且它在 vag 时不提供身份文件和用户名运行向上是 运行。
我可以确认以下命令确实有效。
/opt/vagrant/embedded/bin/curl --verbose \
"scp://myurl.com:/path/to/base.box" --insecure \
--key ~/.ssh/my-key.pem --user admin: --output test.box
如何将所需的选项传递给 base_url
或使打包版本的 curl 符合我的 ssh 配置文件?
这是我在 vagrantfile
中使用的配置块
config.vm.define :devbox, primary: true do |devbox|
devbox.vm.box_download_insecure = true
devbox.vm.box = "base-box"
devbox.vm.box_url = "scp://mydomain.com:/path/to/base.box"
end
任何指导将不胜感激,到目前为止我已经浪费了大约 10 个小时。
在 vagrant github 项目上提交问题后:
https://github.com/hashicorp/vagrant/issues/11546
他们已回应并发布了 2.2.9
版本的更新,允许您指定额外的 box 下载选项。
下面的示例中包含所需的必要键,但您可以将任何 curl 参数作为键传递,并将其值作为值传递。
config.vm.box_url = "scp://example.com:/path/to/your/box.box"
config.vm.box_download_options = {
key: "~/.ssh/secretkey.pem",
user: "username:" # Important, keep the : for no password
}
在用户名后添加 :
很重要,因为这表示没有密码,因为我们使用的是私钥身份验证。
希望这对其他人有帮助。
我正在尝试分发一个打包的基本盒,我想使用我现有的一台全球开发人员可以通过 pem 文件访问的服务器。
我知道 vag运行t 云,但在这种情况下这不是一个选项。
看起来打包的 curl 命令确实支持 scp
但出于某种原因它不尊重我在 ~/.ssh/config
中的值并且它在 vag 时不提供身份文件和用户名运行向上是 运行。
我可以确认以下命令确实有效。
/opt/vagrant/embedded/bin/curl --verbose \
"scp://myurl.com:/path/to/base.box" --insecure \
--key ~/.ssh/my-key.pem --user admin: --output test.box
如何将所需的选项传递给 base_url
或使打包版本的 curl 符合我的 ssh 配置文件?
这是我在 vagrantfile
config.vm.define :devbox, primary: true do |devbox|
devbox.vm.box_download_insecure = true
devbox.vm.box = "base-box"
devbox.vm.box_url = "scp://mydomain.com:/path/to/base.box"
end
任何指导将不胜感激,到目前为止我已经浪费了大约 10 个小时。
在 vagrant github 项目上提交问题后: https://github.com/hashicorp/vagrant/issues/11546
他们已回应并发布了 2.2.9
版本的更新,允许您指定额外的 box 下载选项。
下面的示例中包含所需的必要键,但您可以将任何 curl 参数作为键传递,并将其值作为值传递。
config.vm.box_url = "scp://example.com:/path/to/your/box.box"
config.vm.box_download_options = {
key: "~/.ssh/secretkey.pem",
user: "username:" # Important, keep the : for no password
}
在用户名后添加 :
很重要,因为这表示没有密码,因为我们使用的是私钥身份验证。
希望这对其他人有帮助。