Có thể chỉ định các khóa được chuyển tiếp bằng cách sử dụng lệnh IdentityFile trong .ssh / config không?
Tôi đã gặp phải vấn đề này khi cố gắng triển khai một số mã thông qua Capistrano / GIT trên máy chủ sản xuất của chúng tôi. Cả khóa GIT cá nhân và công việc của tôi luôn được tải trong tác nhân SSH của tôi và điều đó đã xảy ra khi khóa cá nhân của tôi được thêm vào đại lý trước. Tôi sử dụng chuyển tiếp tác nhân khi triển khai với Capistrano vì vậy khi máy chủ cố gắng xác thực hoạt động `git pull`, nó đã thất bại với lỗi sau:
LRI: Quyền đối với `một số repo` bị từ chối đối với` người dùng của bạn`.
bởi vì nó đã cố xác thực bằng khóa git cá nhân của tôi trước khi thử khóa thích hợp (xuất hiện sau trong đại lý ssh) và cho rằng tôi đang truy cập vào một repo nước ngoài mà tôi không được phép truy cập. Tôi có khả năng chỉ có thể cấp cho người dùng cá nhân của tôi quyền truy cập vào mọi repo công việc nhưng trên máy cục bộ của tôi, tôi có thể khắc phục vấn đề này bằng cách xác định tên miền tùy chỉnh trong .ssh / config như vậy:
Lưu trữ Personal.github.com
Tên máy chủ github.com
Người dùng git
IdentityFile ~ / .ssh / some_key
Máy chủ work.github.com
Tên máy chủ github.com
Người dùng git
IdentityFile ~ / .ssh / some_other_key
và cách này git không bao giờ bị nhầm lẫn. Có thể tạo quy tắc .ssh / config cho các khóa được chuyển tiếp trên các hộp sản xuất của tôi để họ luôn biết nên sử dụng khóa nào khi lấy mã mới không? Về cơ bản tôi muốn có thể làm:
Máy chủ work.github.com
Tên máy chủ github.com
Người dùng git
IdentityFile some_forwarded_key
Cảm ơn!