Masalah: Saya memiliki sekitar 20-30 ssh-agent
identitas. Sebagian besar server menolak otentikasi Too many failed authentications
, karena SSH biasanya tidak mengizinkan saya mencoba 20 kunci berbeda untuk masuk.
Saat ini, saya menetapkan file identitas untuk setiap host secara manual, menggunakan IdentityFile
dan IdentitiesOnly
direktif, sehingga SSH hanya akan mencoba satu file kunci, yang berfungsi.
Sayangnya, ini berhenti berfungsi segera setelah kunci asli tidak tersedia lagi. ssh-add -l
memperlihatkan saya jalur yang benar untuk setiap file kunci, dan mereka cocok dengan jalur di .ssh/config
, tetapi tidak berhasil. Rupanya, SSH memilih indentitas dengan tanda tangan kunci publik dan bukan dengan nama file, yang berarti bahwa file asli harus tersedia sehingga SSH dapat mengekstrak kunci publik.
Ada dua masalah dengan ini:
- itu berhenti bekerja segera setelah saya mencabut flash drive memegang kunci
- itu membuat agen meneruskan tidak berguna karena file kunci tidak tersedia pada host jarak jauh
Tentu saja, saya bisa mengekstrak kunci publik dari file identitas saya dan menyimpannya di komputer saya, dan di setiap komputer jarak jauh yang biasa saya masuki. Ini tidak terlihat seperti solusi yang diinginkan.
Yang saya butuhkan adalah kemungkinan untuk memilih identitas dari ssh-agent berdasarkan nama file, sehingga saya dapat dengan mudah memilih kunci yang tepat menggunakan .ssh/config
atau dengan melewati -i /path/to/original/key
, bahkan pada host jarak jauh yang saya masuki SSH. Akan lebih baik lagi jika saya bisa "memberi julukan" kunci sehingga saya bahkan tidak perlu menentukan path lengkap.
authorized_keys
file yang, tergantung pada kunci yang digunakan, menjalankan perintah yang berbeda, tanpa pernah mengizinkan akses shell langsung.