2015-07-29 13 views
12

Tôi có một tài khoản trên một máy tính thân thiện với ssh nơi tôi lưu trữ rất nhiều dự án riêng tư để tôi có thể truy cập chúng từ nhiều máy tính (và nó cho phép tôi chỉ sử dụng một số bản Github riêng cho nhiều thứ mà mọi người sẽ làm việc) .Có thể tải hàng hóa phụ thuộc từ một git riêng tư từ xa không?

Nó có vẻ như Rust là được trang bị tốt để lấy dữ liệu địa phương và cộng đồng bằng cách sử dụng những thứ như

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

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

Nhưng tôi đã không tìm thấy một cách để làm cho nó hoạt động sử dụng ssh git (ví dụ git = "[email protected]:bar/foo", hoặc trong trường hợp của tôi labmachine:bar/foo). Tôi có mật khẩu/keygen ssh thiết lập, nếu điều đó giúp.

Nó không phải là một vấn đề lớn nếu nó không tồn tại. Tại thời điểm này tôi chỉ cần nhân bản kho lưu trữ và sử dụng path = ../foo, hoạt động miễn là tôi giữ cấu trúc thư mục của mình giống nhau và nhớ theo cách thủ công pull tất cả các phụ thuộc trên tất cả các máy của tôi. Tuy nhiên, nó sẽ làm mọi việc trở nên dễ dàng hơn nhiều nếu tôi chỉ có thể thiết lập Cargo để làm điều đó, đặc biệt nếu tôi chỉ cần nhanh chóng giới thiệu một thứ gì đó trên laptop của mình hoặc bất cứ thứ gì.

+0

Tôi sẽ không nghĩ rằng hàng hóa đi kèm với một số loại công cụ để xác thực git, vì ý tưởng về hàng hóa là để lấy phụ thuộc công cộng cho một công cụ xây dựng một cho tất cả. –

+0

Tôi hoàn toàn mong đợi rằng nếu 'git clone foo' hoạt động, thì' git = "foo" 'sẽ hoạt động. Nó nên sử dụng cùng một khóa, theo như tôi biết. Điều gì thực sự xảy ra? –

+0

@ChrisMorgan nếu bạn cố gắng sử dụng cú pháp ssh (ví dụ git @ github chẳng hạn) bạn nhận được "url không hợp lệ" [email protected]: my/crate': URL tương đối không có cơ sở " – LinearZoetrope

Trả lời

2

Sử dụng một con đường SSH đầy đủ chứ không phải là viết tắt của Git:

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

Hmm, không hoạt động. Nếu tôi sử dụng bí danh của tôi được định nghĩa trong '~/.ssh/config', tôi nhận được" không có máy chủ được biết như vậy ". Nhập url đầy đủ sẽ cho phép 'xác thực lỗi: không kết nối được tác nhân'. Tôi đã kiểm tra xem đường dẫn ssh đầy đủ có hoạt động với 'git clone' hay không. – LinearZoetrope

+0

Điều đó thật rắc rối. Tôi không chắc chuyện gì đang xảy ra. –

2

trên MacOS Sierra, tôi đã phải tạo ra một tập tin .ssh/config như thế này:

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

với khóa bí mật (RSA) tập tin chỉ đến và sau đó ra lệnh:

ssh-add -K ~/.ssh/id_rsa 

mà (cuối cùng!) cho phép vi thử như:

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

để hoạt động hoàn hảo.

Tôi không biết tần suất tôi sẽ phải lặp lại lệnh ssh-add, nhưng có vẻ như điều này phải giữ ít nhất cho đến lần khởi động lại tiếp theo.

Sự bất thường này rõ ràng là một tính năng của ssh-agent trên macOS Sierra.

+0

Tôi có thể xác nhận rằng tôi đã phải phát hành lại lệnh 'ssh-add' trước khi nó hoạt động trở lại (sau khi khởi động lại được cập nhật). –

Các vấn đề liên quan