Saya baru mengenal kunci ssh. Siapa pun dapat menjelaskan bagaimana ssh-agent bash
dan ssh-add
bekerja?
Saya perlu memahami internalnya di masa depan.
Saya baru mengenal kunci ssh. Siapa pun dapat menjelaskan bagaimana ssh-agent bash
dan ssh-add
bekerja?
Saya perlu memahami internalnya di masa depan.
Jawaban:
Sebuah agen adalah program yang membuat kunci Anda dalam memori sehingga Anda hanya perlu membuka mereka sekali , bukan setiap kali. ssh-agent melakukan ini untuk kunci SSH.
Metode yang biasa untuk memulai ssh-agent adalah:
eval `ssh-agent`
- ini menjalankan agen di latar belakang, dan menetapkan variabel lingkungan yang sesuai untuk instance shell saat ini .
( ssh-agent , ketika dimulai tanpa argumen, menampilkan perintah untuk ditafsirkan oleh shell Anda.)
exec ssh-agent bash
- memulai instance baru dari bash
shell, menggantikan yang sekarang.
(Dengan satu atau lebih argumen, ssh-agent tidak menghasilkan apa-apa, tetapi memulai perintah yang ditentukan: dalam kasus ini, bash
shell, tetapi secara teknis bisa berupa apa saja.)
Metode kedua kadang-kadang lebih disukai, karena secara otomatis membunuh ssh-agent ketika Anda menutup jendela terminal. (Saat memulai dengan eval
, agen akan tetap berjalan, tetapi tidak dapat diakses.)
Namun, ini hanya memulai agen kosong. Untuk benar-benar membuatnya berguna, Anda perlu menggunakan ssh-add , yang membuka kunci Anda (biasanya ~/.ssh/id_*
) dan memuatnya ke agen, membuatnya dapat diakses oleh koneksi ssh atau sftp .
Selain itu, Anda mungkin ingin menambahkan beberapa tombol di awal sesi.
Edit ~/.bashrc
file Anda , dan tambahkan:
ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null # start ssh-agent if not present
[ $? -eq 0 ] && { # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null # Load key 2
}
Periksa kunci Anda dengan ssh-add -l
Anda dapat menghentikan sesi ssh-agent saat ini dengan ssh-agent -k
Sesuatu yang perlu diketahui tentang ssh-agent dan .bashrc adalah jangan memuat terlalu banyak kunci. Jumlah percobaan default untuk ssh daemon terbatas pada 6. Ini dapat dimodifikasi /etc/ssh/sshd_config
dengan MaxAuthTries
nilainya.
ssh-add
dengan "&"? Apakah Anda mengasumsikan file kunci pribadi tidak terlindungi?