我在Github上有一个私有存储库,其中包含我想用于Vagrant设置的脚本。由于我的存储库是私有的,因此我需要授予对脚本的访问权限。请告诉我该怎么做。
我尝试使用链接中的令牌授予访问权限,但这会导致此错误:
C:/Program Files (x86)/Vagrant/embedded/mingw64/lib/ruby/2.4.0/tempfile.rb:133:in `initialize': Invalid argument @ rb_sysopen - C:/Users/Stas/AppData/Local/Temp/vagrant-shell20181004-3104-19o2zkk.sh?token=blah-blah-blah-blah-blah-blah (Errno::EINVAL)
from C:/Program Files (x86)/Vagrant/embedded/mingw64/lib/ruby/2.4.0/tempfile.rb:133:in `open'
from C:/Program Files (x86)/Vagrant/embedded/mingw64/lib/ruby/2.4.0/tempfile.rb:133:in `block in initialize'
...
很明显,Vagrant无法修剪GET参数和文件名。
我的系统:Windows。 我知道this way,但是我需要另一个解决方案。
答案 0 :(得分:1)
首选解决方案是使用SSH代理转发链接到的解决方案。我们在这里将它与Vagrant一起使用,效果很好。
或者,您可以使用a GitHub deploy key为Vagrant授予对您的私有存储库的只读访问权限。您可以将未加密的私钥放在Vagrant目录中,这样它就会显示在/vagrant
中。然后,在供应脚本中,将其安装为/root/.ssh/id_rsa
。请记住要设置/root/.ssh
和/root/.ssh/id_rsa
的权限,以便组和其他人无法访问它们。之后,git clone
应该可以工作。
我注意到使用未加密的私钥是不好的做法,尽管有时使用部署密钥是不可避免的。请特别注意确保未加密的私钥永远不会被推送到GitHub。