Skenario:
Saya menjalankan ssh-agent pada PC lokal saya, dan semua server / klien saya diatur untuk meneruskan auth agent SSH. Saya dapat melompat di antara semua mesin saya menggunakan ssh-agent pada PC lokal saya. Itu bekerja.
Saya harus bisa SSH ke mesin seperti saya sendiri (user1) , ubah ke pengguna lain bernama user2 ( sudo -i -u user2 ), dan kemudian ssh ke kotak lain menggunakan ssh-agent yang saya jalankan di PC lokal saya. Katakanlah saya ingin melakukan sesuatu seperti ssh user3 @ machine2 (dengan anggapan bahwa user3 memiliki kunci SSH publik saya dalam file yang diotorisasi).
Saya telah mengkonfigurasi sudo untuk menjaga variabel lingkungan SSH_AUTH_SOCK .
Semua pengguna yang terlibat (pengguna [1-3]), adalah pengguna yang tidak memiliki hak istimewa (bukan root).
Masalah:
Ketika saya mengubah ke pengguna lain, meskipun variabel SSH_AUTH_SOCK diatur dengan benar, (katakanlah set ke: /tmp/ssh-HbKVFL7799/agent.13799) user2 tidak memiliki akses ke soket yang dibuat oleh user1 - Manakah dari tentu saja masuk akal, jika tidak user2 bisa membajak kunci pribadi user1 dan melompat-lompat sebagai pengguna itu.
Skenario ini berfungsi dengan baik jika alih-alih mendapatkan shell melalui sudo untuk user2, saya mendapatkan shell melalui sudo untuk root. Karena secara alami root memiliki akses ke semua file di mesin.
Pertanyaan:
Lebih disukai menggunakan sudo, bagaimana saya bisa berubah dari user1 ke user2, tetapi masih memiliki akses ke SSH_AUTH_SOCK user1?