我在一台支持 ssh 的实验室机器上有一个帐户,我在其中存储了很多私有(private)项目,因此我可以从多台计算机访问它们(它允许我只使用我的几个私有(private) Github 存储库来处理多人将要处理的事情).
看起来 Rust 很适合通过使用类似的东西来获取本地和公共(public)数据
[dependencies.foo]
git = "https://github.com/bar/foo"
[dependencies.baz]
path = "/path/to/baz"
但我还没有找到使用 ssh git 让它工作的方法(例如 git = "git@github.com:bar/foo"
,或者在我的例子中是 labmachine :bar/foo
).如果有帮助的话,我设置了 passwordless/keygen ssh。
不存在也没什么大不了的。目前我只是手动克隆存储库并使用 path = ../foo
,只要我保持我的目录结构不变并记住手动 pull
我所有机器上的所有依赖项。但是,如果我可以设置 Cargo 来做这件事,事情就会变得容易得多,尤其是当我只需要在我的笔记本电脑或其他任何东西上快速演示某些东西时。
最佳答案
在 macOS Sierra 上,我必须创建一个 .ssh/config
文件,如下所示:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
使用指向的私钥(RSA)文件,然后发出命令:
ssh-add -K ~/.ssh/id_rsa
它(终于!)允许这样的条目:
git = "ssh://git@github.com/skipjaq/loda.git"
完美地工作。
我不知道我需要多久重复一次 ssh-add
命令,但看起来这至少应该保持到下一次重新启动。
这个异常显然是 macOS Sierra 上 ssh-agent
的一个特性。
关于rust - 是否可以让 Cargo 从私有(private)远程 git 获取依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31704573/