Vấn đề: Tôi có khoảng 20-30 ssh-agent
danh tính. Hầu hết các máy chủ từ chối xác thực Too many failed authentications
, vì SSH thường không cho phép tôi thử 20 khóa khác nhau để đăng nhập.
Hiện tại, tôi đang chỉ định tệp nhận dạng cho mọi máy chủ theo cách thủ công, sử dụng lệnh IdentityFile
và lệnh IdentitiesOnly
, do đó SSH sẽ chỉ thử một tệp chính, hoạt động.
Thật không may, điều này dừng hoạt động ngay khi các khóa gốc không còn nữa. ssh-add -l
chỉ cho tôi các đường dẫn chính xác cho mọi tệp chính và chúng khớp với các đường dẫn trong đó .ssh/config
, nhưng nó không hoạt động. Rõ ràng, SSH chọn sự thụt lề bằng chữ ký khóa chung chứ không phải theo tên tệp, điều đó có nghĩa là các tệp gốc phải có sẵn để SSH có thể trích xuất khóa chung.
Có hai vấn đề này:
- nó dừng hoạt động ngay khi tôi rút ổ đĩa flash đang giữ các phím
- nó làm cho tác nhân chuyển tiếp vô dụng vì các tệp chính không có sẵn trên máy chủ từ xa
Tất nhiên, tôi có thể trích xuất các khóa công khai từ các tệp nhận dạng của mình và lưu trữ chúng trên máy tính của mình và trên mọi máy tính từ xa tôi thường đăng nhập. Điều này không giống như một giải pháp mong muốn, mặc dù.
Điều tôi cần là khả năng chọn một danh tính từ ssh-agent theo tên tệp, để tôi có thể dễ dàng chọn đúng khóa bằng cách sử dụng .ssh/config
hoặc bằng cách chuyển -i /path/to/original/key
, ngay cả trên một máy chủ từ xa mà tôi SSH vào. Sẽ tốt hơn nữa nếu tôi có thể "biệt danh" các phím để tôi thậm chí không phải chỉ định đường dẫn đầy đủ.
authorized_keys
tệp, tùy thuộc vào khóa được sử dụng, thực thi các lệnh khác nhau, mà không bao giờ cho phép truy cập shell trực tiếp.