ssh keys ssh-agent bash dan ssh-add


28

Saya baru mengenal kunci ssh. Siapa pun dapat menjelaskan bagaimana ssh-agent bashdan ssh-addbekerja?

Saya perlu memahami internalnya di masa depan.


Sudahkah Anda mencoba hit Google teratas untuk semua istilah ini?
Daniel Beck

Ya saya lakukan. Saya tidak mendapatkan informasi yang berguna. Saya buruk
maneeshshetty

Jawaban:


44

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 bashshell, menggantikan yang sekarang.

    (Dengan satu atau lebih argumen, ssh-agent tidak menghasilkan apa-apa, tetapi memulai perintah yang ditentukan: dalam kasus ini, bashshell, 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 .


3
Apakah ada cara untuk memulai ssh-agent di beberapa sesi bash, sekali?
Asim

9

Selain itu, Anda mungkin ingin menambahkan beberapa tombol di awal sesi.

Edit ~/.bashrcfile 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_configdengan MaxAuthTriesnilainya.


1
Bagaimana dengan kata sandi kunci pribadi saat meluncurkan ssh-adddengan "&"? Apakah Anda mengasumsikan file kunci pribadi tidak terlindungi?
Luciano

Kode di atas meminta frasa sandi dua kali, sekali ketika memeriksa apakah ssh-agent tersedia dan sekali lagi memuat kunci pribadi.
Tapan Chandra
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.