Kịch bản:
Tôi đang chạy ssh-agent trên PC cục bộ của mình và tất cả các máy chủ / máy khách của tôi được thiết lập để chuyển tiếp auth tác nhân SSH. Tôi có thể nhảy giữa tất cả các máy của mình bằng ssh-agent trên PC cục bộ. Điều đó làm việc.
Tôi cần có khả năng SSH vào máy như chính mình (user1) , đổi sang người dùng khác có tên user2 ( sudo -i -u user2 ), sau đó ssh sang một hộp khác bằng ssh-agent tôi đang chạy trên PC cục bộ. Hãy nói rằng tôi muốn làm một cái gì đó như ssh user3 @ machine2 (giả sử rằng user3 có khóa SSH công khai của tôi trong tệp ủy quyền của họ).
Tôi đã cấu hình sudo để giữ biến môi trường SSH_AUTH_SOCK .
Tất cả người dùng liên quan (người dùng [1-3]), là người dùng không có đặc quyền (không phải root).
Vấn đề:
Khi tôi thay đổi sang một người dùng khác, mặc dù biến SSH_AUTH_SOCK được đặt chính xác, (giả sử nó được đặt thành: /tmp/ssh-HbKVFL7799/agent.13799) user2 không có quyền truy cập vào ổ cắm được tạo bởi user1 - Cái nào Tất nhiên, nếu không thì user2 có thể chiếm đoạt khóa riêng của user1 và nhảy xung quanh như người dùng đó.
Kịch bản này chỉ hoạt động tốt nếu thay vì lấy shell qua sudo cho user2, tôi lấy shell qua sudo cho root. Bởi vì root tự nhiên có quyền truy cập vào tất cả các tệp trên máy.
Câu hỏi:
Tốt nhất là sử dụng sudo, làm cách nào tôi có thể thay đổi từ user1 sang user2, nhưng vẫn có quyền truy cập vào SSH_AUTH_SOCK của user1?