2012-06-19 26 views
42

Giả sử thư mục .ssh của bạn có chứa 30 phím (15 cá nhân và 15 công)GIT và SSH, khóa nào được sử dụng?

đâu trong GIT, có thể một séc nào được sử dụng để kết nối với một repo từ xa được?

+4

Bất kỳ ai đã bỏ phiếu để "đóng", câu hỏi này - có liên quan trực tiếp đến lập trình cho cùng một câu hỏi về GIT được phép ở đây – JAM

+1

Có thể cho rằng ... Đây thực sự là một câu hỏi siêu người dùng, vấn đề ở đây không phải là git, nhưng nền tảng đang chạy. Bạn không thể kiểm tra "trong git" cho vấn đề, bởi vì git không quan tâm, nó chỉ liên quan đến cách bạn sử dụng ssh và cách cấu hình nó. Bạn có sử dụng ssh-agent, bất kỳ loại hệ thống quản lý khóa nào, bạn sử dụng hệ điều hành nào, phiên bản nào, etcetera? – Arafangion

Trả lời

41

Các mục sau đây trong .ssh/config tập giải quyết vấn đề

host git.assembla.com 
    user git 
    identityfile ~/.ssh/whatever 

đâu ~/.ssh/whatever là một con đường để bạn tin chính

Bên cạnh đó, người dùng và máy chủ có thể được nhặt từ

git push [email protected]:repo_name.git 
     ^__ ^_______________ 
     user host 
+0

vì vậy nếu tôi muốn sử dụng một khóa ssh khác cho một máy chủ lưu trữ khác, tôi có thể lặp lại như vậy sau lần đầu tiên không ?? Danh tính có liên quan đến máy chủ đầu tiên trước nó không? – MikeSchem

+0

ok, yea, có vẻ như đó là trường hợp https://www.cyberciti.biz/faq/force-ssh-client-to-use-given-private-key-identity-file/ – MikeSchem

5

git chỉ sử dụng ssh để kết nối, nó sẽ sử dụng phím bất kỳ ssh sẽ sử dụng để kết nối với máy chủ từ xa. Xem tệp ~/.ssh/config để biết chi tiết; khối host sử dụng chỉ thị IdentityFile để chỉ định khóa cá nhân để sử dụng. Trang man ssh_config(5) chứa đầy đủ chi tiết.

+0

Hmm .. tệp không tồn tại trên hệ thống của tôi. Phải không? – JAM

+1

@JAM Bạn đang sử dụng hệ điều hành nào? Ngoài ra, đôi khi các tập tin cấu hình là tại '/ etc/ssh/ssh_config' –

+0

Tôi đang trên MACOS.Tìm thấy '/ etc/ssh_config' có vẻ như là một tập tin đầy đủ các mục nhận xét – JAM

6

Trừ khi được chỉ định trên .ssh/config, nó sẽ sử dụng tệp khóa cá nhân mặc định.

Tệp mặc định là ~/.ssh/id_rsa hoặc ~/.ssh/id_dsa hoặc ~/.ssh/identity tùy thuộc vào phiên bản giao thức.

1

Trên máy chủ từ xa, chỉnh sửa tệp sshd_config và thay đổi LogLevel từ INFO thành VERBOSE và khởi động lại ssh.

Bây giờ tệp nhật ký của bạn sẽ giữ dấu vân tay của khóa được sử dụng để xác thực từng người dùng.

Trên Ubuntu, những tập tin này là:

/etc/ssh/sshd_config 
/var/log/auth.log 

nhưng họ có thể khác nhau trên distro khác. Chỉ cần google cho vị trí của họ (một số sử dụng/var/log/an toàn ví dụ).

31

Thực thi ssh ở chế độ tiết, còn gọi là ssh -v [email protected], sẽ in một tải rất lớn thông tin gỡ lỗi, cũng chứa thông tin chi tiết về các tệp tin chính mà nó đang cố đăng nhập.

debug1: Authentications that can continue: publickey 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /home/user/.ssh/id_rsa 
debug1: Server accepts key: pkalg ssh-rsa blen 332 
debug1: read PEM private key done: type RSA 
debug1: Authentication succeeded (publickey). 

Bây giờ nếu bạn kết hợp này, với Bước 4 ở riêng SSH help page của Git, ssh -vT [email protected] có thể cung cấp cho bạn câu trả lời.

Lưu ý: Bạn cũng có thể sử dụng công tắc -i để báo cho ssh khi thực thi lệnh, sử dụng keyfile nào.

+0

Xem thêm: http://stackoverflow.com/questions/18845799/show-ssh-key-file-in-git-bash – Sharadh

+0

Bạn cũng có thể grep đầu ra lỗi chuẩn của lệnh ssh để tìm tệp khóa như sau: 'ssh -vv user @ host 2>> (grep Cung cấp) '- điều này sẽ làm cho mọi thứ dễ dàng hơn. Tệp cuối cùng phải là khóa công khai. Ví dụ: 'debug1: Cung cấp khóa công khai RSA:/Users/macbookpro/.ssh/id_rsa' –

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