Bisakah saya memiliki beberapa kunci ssh di folder .ssh saya?

30

Dapatkah saya membuat beberapa kunci ssh, dan mengganti nama menjadi nama yang mudah dimengerti oleh pengguna sehingga saya tahu kunci mana untuk situs web yang mana, dll.

Apakah ini aman?

misalnya:

github_id_rsa
github_id_rsa.pub
..
...

Bagaimana ia tahu kunci mana yang harus diperiksa saat menghubungkan?

Di komputer saya sekarang, ketika saya melihat known_hosts, mereka semua tampaknya memiliki kunci yang sama setelah nama host ??

pengguna27449
sumber
Juga, kunci host yang dikenal pasti tidak sama, lihat saja ujung garis untuk setiap host.
slhck

Jawaban:

15

Ya, Anda dapat memiliki kunci ssh yang berbeda. Ada dokumentasi yang sangat bagus di situs Bantuan GitHub di Help.GitHub - Beberapa Kunci SSH . Pada dasarnya Anda akan menggunakan ssh-add untuk menambahkan kunci tambahan sehingga agen dapat menggunakannya. Kemudian Anda mengatur konfigurasi ssh hosts sehingga koneksi ssh ke domain yang berbeda akan terlihat di sini dan kunci yang sesuai akan digunakan. semoga berhasil!

ArtemT
sumber
1
Tautan tidak lagi berfungsi
danwellman
44

Anda dapat memodifikasi file ~ / .ssh / config untuk menggunakan file identitas yang berbeda untuk server yang berbeda. Edit ~ / .ssh / config di editor favorit Anda dan tambahkan entri yang sesuai dengan situasi Anda seperti:

Host *
IdentityFile ~/.ssh/id_rsa

Host *.github.*
IdentityFile ~/.ssh/github_id.rsa

Host *.someother.com
IdentityFile ~/.ssh/someother_id.rsa

Bagian pertama di atas menetapkan default untuk semua host dan bagian lain menimpa apa yang harus digunakan untuk masing-masing host yang cocok dengan pola. Jika Anda memiliki nama pengguna yang berbeda untuk setiap host, maka Anda dapat menambahkan kunci pengguna diikuti oleh nama pengguna pada remote ke bagian.

joehep
sumber
3
Ini adalah jawaban yang paling berguna untuk pertanyaan ini terlepas dari tujuan apakah GitHub atau situs lain.
Pierre
Ini tidak berfungsi jika Anda memiliki beberapa akun bitbucket dan perlu memiliki kunci yang berbeda untuk masing-masingnya.
John Little
chmod 400 ~/.ssh/id_rsaatau chmod 400 ~/.ssh/foo_id.rsamungkin perlu.
T.Woody
@JohnLittle Lihat jawaban saya yang memecahkan akun multi-pengguna untuk domain yang sama.
Sathishkumar Rakkiasamy
4

Anda dapat mengatur beberapa kunci ssh untuk situs mana pun yang memiliki banyak akun pengguna

Di bawah ini adalah contoh yang biasa saya ikuti dalam pengembangan saya untuk GitHub.com

Contoh file konfigurasi

#Personal account
 Host github.com-<personal-account-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_personal
 IdentitiesOnly yes



#Organization account
 Host github.com-<organization-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_work
 IdentitiesOnly yes

Pada saat menambahkan asal baru

Untuk akun pribadi

git remote add origin [email protected]<personal-account-name>:<personal-account-name>/<repo-name>.git

Untuk akun Organisasi

git remote add origin [email protected]<organization-name>:<organization-name>/<repo-name>.git

Semoga ini bisa membantu.

Sathishkumar Rakkiasamy
sumber