Beberapa kunci publik untuk satu pengguna

55

Pertanyaan ini mirip dengan otentikasi kunci publik SSH - dapatkah satu kunci publik digunakan untuk banyak pengguna? tapi sebaliknya.

Saya bereksperimen menggunakan ssh sehingga server ssh mana pun akan berfungsi untuk jawaban Anda.

Bisakah saya memiliki beberapa kunci publik yang terhubung ke pengguna yang sama? Apa manfaat melakukannya? Juga, dapatkah direktori home yang berbeda diatur untuk kunci yang berbeda yang digunakan (yang semuanya terhubung ke pengguna yang sama)?

Tolong beri tahu saya jika saya tidak jelas.

Terima kasih.

Russell
sumber

Jawaban:

80

Anda dapat memiliki kunci sebanyak yang Anda inginkan. Ini praktik yang baik untuk menggunakan set kunci privat / publik yang terpisah untuk bidang yang berbeda pula, seperti satu set untuk penggunaan pribadi Anda, satu untuk pekerjaan Anda, dll.

Pertama, hasilkan dua tombol terpisah, satu untuk rumah dan satu untuk pekerjaan:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

Selanjutnya, tambahkan entri ke ~/.ssh/configfile Anda untuk memilih kunci yang akan digunakan berdasarkan server yang Anda sambungkan:

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

Selanjutnya, tambahkan konten Anda id_rsa.work.pubke ~/.ssh/authorized_keysdalam mesin kerja, dan lakukan hal yang sama untuk kunci rumah di mesin rumah Anda.

Kemudian ketika Anda terhubung ke server rumah Anda menggunakan salah satu kunci, dan server kerja yang Anda gunakan yang lain.

Perhatikan bahwa Anda mungkin ingin menambahkan kedua kunci itu ssh-agentsehingga Anda tidak perlu mengetikkan kata sandi Anda sepanjang waktu.

Phil Hollenback
sumber
Ini akan bekerja bahkan jika id_rsa.work.pub dan id_rsa.home.pub ditanam di server yang sama, kan? Alasannya adalah saya mungkin menghubungkan ke server dari komputer yang berbeda, jadi saya bertanya-tanya apakah masuk akal untuk memiliki keypairs yang berbeda untuk setiap komputer bahkan jika mereka terhubung ke server sebagai pengguna yang sama. Terima kasih.
Russell
2
Benar! Di sisi server, ssh akan memeriksa semua kunci publik di file Authorized_key sampai menemukan kecocokan. Jadi Anda bisa meletakkan semua kunci dalam file yang berwenang yang sama di server tidak ada masalah.
Phil Hollenback
@PhilHollenback "ssh akan memeriksa semua kunci publik dalam file yang diotorisasi hingga menemukan kecocokan" - maksud Anda terus mengirim tantangan ke klien untuk setiap kunci publik hingga klien membuktikan bahwa ia dapat mendekripsi satu? Apakah Anda punya referensi untuk itu? (benar-benar tertarik)
aaa90210
5

Masuk akal jika beberapa kunci pengguna digunakan untuk satu pengguna. Alasan umum adalah:

  • cadangan
  • git (misal Push URL: git+ssh://git@git-server/~/repos/MyProject)
  • rsync
  • akses umum ke suatu aplikasi

Sejauh memiliki homedir yang berbeda, Anda dapat mengubahnya per kunci dengan menambahkan environment="HOME=/home/user1"kunci pengguna1 dalam file Authorized_key. Lihat man authorized_keys.

Cobalah, YMMV.

MikeyB
sumber