Можно ли иметь зависимости Cargo fetch от частного удаленного устройства git?

У меня есть учетная запись на дружественной ssh ​​машине, где я храню много частных проектов, поэтому я могу получить к ним доступ с нескольких компьютеров (и это позволяет мне использовать только мои небольшие частные репозитории Github для вещей, которые будут работать несколько человек).

Кажется, что Rust хорошо оборудован для получения локальных и общедоступных данных, используя такие вещи, как

[dependencies.foo]
git = "https://github.com/bar/foo"

[dependencies.baz]
path = "/path/to/baz"

Но я не нашел способ заставить его работать с помощью ssh git (например, git = "[email protected]:bar/foo" или в моем случае labmachine:bar/foo). У меня есть пароль без пароля /keygen ssh, если это помогает.

Это не имеет большого значения, если этого не существует. На данный момент я просто клонирую репозиторий вручную и используя path = ../foo, который работает до тех пор, пока я сохраняю структуру каталогов одинаковой и не забудьте вручную pull все зависимости от всех моих машин. Тем не менее, это сделало бы намного проще, если бы я мог просто настроить Cargo, чтобы сделать это, особенно если мне просто нужно быстро что-то демо на моем ноутбуке или что-то еще.

Ответ 1

Используйте полный путь SSH, а не Git s стенографию:

git = "ssh://landmachine/bar/foo"

Ответ 2

В macOS Sierra мне пришлось создать файл .ssh/config следующим образом:

Host *
   UseKeychain yes
   AddKeysToAgent yes
   IdentityFile ~/.ssh/id_rsa

с указанным файлом закрытого ключа (RSA), а затем выполните команду:

ssh-add -K ~/.ssh/id_rsa

который (наконец!) разрешил запись вроде:

git = "ssh://[email protected]/skipjaq/loda.git"

чтобы работать отлично.

Я не знаю, как часто мне придется повторять команду ssh-add, но кажется, что это должно продолжаться, по крайней мере, до следующей перезагрузки.

Эта аномалия, по-видимому, является признаком ssh-agent для macOS Sierra.