Saya telah menemukan masalah ini beberapa kali ketika membuat membangun server dengan otentikasi kunci.
Saya bertanya-tanya apakah ada orang lain yang mengalami hal ini. Saya memiliki beberapa kunci untuk pengguna saya saat ini yang dapat terhubung ke mesin yang berbeda. Katakanlah machine1 dan machine2. Saya telah menempelkan kunci publik saya ke file otor_keys masing-masing. Yang pertama saya beri nama id_rsa kunci pertama dan bender kunci kedua.
Ketika saya mencoba untuk terhubung ke bender saya mendapatkan output berikut dengan koneksi ssh verbose saya
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/bozo/.ssh/.ssh/identity
debug1: Trying private key: /home/bozo/.ssh/.ssh/id_rsa
debug1: Trying private key: /home/bozo/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
Ini hanya menawarkan kunci id_rsa, seperti yang Anda lihat di atas. Apakah ini benar? Jika demikian mengapa? Bagaimana saya mendapatkannya untuk menawarkan lebih banyak kunci? Saya tahu ini adalah masalah yang saya lihat sebentar-sebentar, karena di rumah saya punya banyak kunci tanpa banyak masalah.
Saya juga akan menghargai tinjauan umum tentang bagaimana pub dan kunci pribadi berinteraksi dengan klien dan server. Saya pikir saya punya ide yang cukup baik, tetapi ternyata saya kehilangan sesuatu.
Silahkan dan terima kasih.
ssh_config(5)
: Nama file dapat menggunakan sintaksis tilde untuk merujuk ke direktori home pengguna atau salah satu dari karakter escape berikut: '% d' (direktori home user lokal), '% u' (nama pengguna lokal), '% l '(nama host lokal),'% h '(nama host jarak jauh) atau'% r '(nama pengguna jarak jauh). Tidak mungkin untuk menentukan kartu liar, tapi ini seharusnya cukup nyaman kurasa. Ketahuilah bahwa server harus menyelidiki setiap kunci yang Anda kirim, jadi lebih sedikit menentukan kunci lebih baik. Wildcard pada pekerjaan Host, lihat lagi halaman manualssh_config(5)
..ssh/authorized_keys
file di mesin remote. Jika Anda menggunakan.ssh/id_rsa
nama file standar (atau id_dsa, id_ecdsa atau id_ed25519 baru-baru ini), maka ssh akan mencoba ini secara otomatis dan Anda tidak perlu menentukanIdentityFile
dalam konfigurasi Anda (atau-i path/to/id_file
parameter untukssh
).Metode favorit saya memungkinkan kunci pribadi untuk dipilih secara otomatis
SSH akan mengganti% l dengan nama mesin lokal,% r dengan nama pengguna jarak jauh, dan% h dengan host jarak jauh, jadi jika saya ingin terhubung dari mesin saya yang disebut foo to bar sebagai pengguna, saya menjalankan:
Dan ssh akan secara otomatis menggunakan:
Karena host lokal juga disimpan, ini memungkinkan direktori home yang dibagikan melalui NFS (kunci berbeda per mesin!) Atau bahkan mengidentifikasi mesin mana yang menjadi kunci ...
sumber
Mempertimbangkan komentar StevenRoose bahwa perlu waktu lebih lama untuk menentukan banyak kunci, dan saya kebetulan bermain-main dengan banyak kunci, saya ingin menyarankan solusi pribadi saya.
Saya membuat symlink ke kunci yang ingin saya gunakan pada saat itu, dan karena itu jarang berubah tergantung pada proyek yang sedang saya kerjakan, saya senang dengan itu.
Di sini saya telah ditautkan ke kunci saya untuk mesin yang berjalan di bawah virtualbox:
Kita juga bisa menambahkan skrip yang sangat cepat untuk mengubah set lain tanpa harus mengetikkan perintah ln secara manual lagi.
Sekali lagi, ini bukan solusi untuk dua kunci saja, tetapi untuk jumlah yang lebih besar, mungkin bisa diterapkan.
sumber