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?
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?
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
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
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
Vì 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.
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.
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ụ).
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.
Xem thêm: http://stackoverflow.com/questions/18845799/show-ssh-key-file-in-git-bash – Sharadh
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' –
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
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