Katakanlah saya punya kunci untuk Github, bersama dengan kunci lainnya. Saya telah menambahkan banyak kunci ke agen ssh saya ( ssh-add -L
mengembalikan banyak baris) di komputer rumah saya A. Dalam saya, .ssh/config
saya telah mengatur kunci mana yang akan digunakan dengan host mana, jadi mis.
ssh -T -vvv [email protected] 2>&1 | grep Offering
memberi
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
Hanya satu kunci yang ditawarkan, seperti yang diharapkan. Tapi kemudian ssh-ing ke beberapa host B dengan ForwardAgent yes
dan mengulangi perintah yang sama, saya mengerti
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.linode2
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.helium
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
artinya mencoba semua kunci saya. Ini bermasalah karena hanya sejumlah kunci yang dapat dicoba sebelum server kembali Too many authentication failures
. Jadi saya mencoba mengedit .ssh/config
pada host B untuk memasukkan
Host github.com
IdentityFile /Users/doxna/.ssh/id_rsa.github
IdentitiesOnly yes
tapi kemudian saya tidak mendapatkan penawaran kunci, melainkan
debug2: key: /Users/doxna/.ssh/id_rsa.github ((nil))
yang saya kira berarti kuncinya tidak ditemukan (?) Dan setelah semua, kuncinya terletak di komputer rumah saya A, bukan host B, jadi pertanyaannya adalah bagaimana merujuknya di host B? Semoga saya berhasil menjelaskan pertanyaan itu.
ssh
ke file kunci publik tanpa file kunci privat terkait, itu harus hanya membaca kunci publik dari file dan meminta agen menggunakan kunci pribadi terkait untuk menghasilkan tanda tangan.Jawaban bagus dari @Kasperd, tetapi perhatikan juga bahwa jika Host B dikompromikan, atau jika Anda tidak mempercayai semua yang memiliki hak akses root di sana, maka Anda masih mengekspos semua kunci Anda untuk penyalahgunaan selama Anda login di host itu.
Jadi pendekatan yang lebih baik mungkin hanya meneruskan akses ke kunci yang Anda butuhkan. Mungkin coba
ssh-agent-filter
yang ada di repositori debian / Ubuntu, atau dari github .EDIT: Saya
ssh-ident
lebih memilih daripadassh-agent-filter
meneruskan tombol secara selektif, meskipun itu tidak semulus pengalaman yang diharapkan.sumber
SSH_*
variabel lingkungan dan masuk ke mana pun Anda ingin menggunakan kunci, meskipun tidak pernah memiliki salinan yang sebenarnya.