Saya menggunakan solusi yang sedikit lebih rumit tetapi sangat fleksibel karena saya ingin mempertahankan beberapa pemisahan dalam kunci identitas SSH yang digunakan untuk server jaringan rumah, server kantor, server klien jaringan konsultasi dan berbagai sistem lainnya yang saya miliki akunnya.
Sekarang yang mengatakan saya bekerja dari workstation Linux hampir secara eksklusif jadi saya memiliki kunci USB yang setup menggunakan enkripsi LUKS dan window manager X11 saya bersama dengan daemon HAL mendeteksi drive terenkripsi LUKS dan meminta frasa sandi dekripsi ketika dimasukkan dan mencoba untuk dipasang. Dengan menyimpan ini pada drive terenkripsi seperti yang saya lakukan, saya tidak pernah menyimpan kunci SSH saya di workstation apa pun.
Saya kemudian memiliki konfigurasi berikut di ~/.ssh/configfile saya :
Host *
Protocol 2
IdentityFile %d/.ssh/keys.d/id_rsa.%l
IdentityFile %d/.ssh/keys.d/id_dsa.%l
IdentityFile %d/.ssh/keys.d/%u@%l
The % d diterjemahkan menjadi direktori home user dengan OpenSSH dan di ~ / .ssh direktori Saya telah menciptakan keys.d sebagai symlink ke jalur direktori pada USB drive dienkripsi bila benar dipasang.
The % l ekspresi diterjemahkan menjadi nama host dan mesin klien lokal % u akan diterjemahkan ke nama klien lokal.
Apa yang dilakukan konfigurasi ini adalah memungkinkan SSH untuk mencari kunci menggunakan 3 ekspresi berbeda. Sebagai contoh jika nama pengguna jdoeklien lokal saya dan nama mesin klien lokal saya jika examplehostitu akan terlihat dalam urutan berikut sampai menemukan kunci yang keduanya ada dan diterima oleh server jauh.
/home/jdoe/.ssh/keys.d/id_rsa.examplehost
/home/jdoe/.ssh/keys.d/id_dsa.examplehost
/home/jdoe/.ssh/keys.d/jdoe@examplehost
Anda bahkan dapat menggunakan ekspresi % r untuk mencari kunci khusus untuk nama pengguna server jarak jauh atau % h untuk nama host server jarak jauh seperti % u dan % l digunakan.
Pembaruan: Sekarang saya benar-benar menggunakan gnu-gpg gnu-agent dengan kompatibilitas ssh-agent untuk hanya membaca dan menggunakan kunci otentikasi dari smartcard OpenPGP v2 saya.