Saya ingin meletakkan ssh-add /path/to/special_key
di bagian atas naskah. Ini berfungsi dengan baik, tetapi selalu meminta frasa sandi. Ini aneh, dan sedikit menjengkelkan, karena masih meminta kata sandi bahkan ketika ssh-add -l
menunjukkan kunci telah ditambahkan.
Apakah ada cara untuk mengatakannya: "tambahkan kunci ini dan tanyakan frasa sandi jika belum ditambahkan, jika tidak lakukan apa-apa"?
shell-script
ssh
ssh-agent
Darren Cook
sumber
sumber
Jawaban:
Saya tidak melihat opsi untuk ssh-add yang membantu mencapai hasil yang Anda inginkan, tetapi cukup mudah untuk menyelesaikannya, mengingat Anda khawatir dengan satu kunci pada khususnya.
Pertama, ambil sidik jari untuk special_key Anda:
Katakanlah sidik jari ini terlihat seperti 6d: 98: ed: 8c: 07: 07: fe: 57: bb: 19: 12: 89: 5a: c4: bf: 25
Kemudian, di bagian atas skrip Anda, gunakan
ssh-add -l
untuk memeriksa apakah kunci itu dimuat, sebelum diminta untuk menambahkannya:Anda dapat melipat semua ini menjadi satu baris jika Anda ingin:
sumber
ssh-keygen
(setelah semua, saya tidak ingin menghasilkan kunci apa pun), alih-alih menggunakan jalur kunci:ssh-add -l | grep -q 'path/to/key' || ssh-add /path/to/key
ssh-keygen
dalam jawaban tidak menghasilkan kunci - sama sepertissh-add -l
pada contoh Anda sebenarnya tidak menambahkan apa pun. Bendera memodifikasi perilaku perintah sehingga tidak sama persis dengan namanya. Perhatikan bahwa versi ini berbeda secara fungsional - jika memeriksa dengan jalur dan kunci pada jalur itu berubah, versi Anda tidak akan mengambilnya. Versi dalam jawaban juga akan mendeteksi kunci yang ada di mana pun dari mana itu diambil.Tidak ada cara langsung untuk memeriksa menggunakan hanya
ssh-add
tetapi Anda dapat menggunakanssh-keygen
dan beberapa skrip untuk memeriksa.Di atas akan mencetak
yes
jika sidik jari diwakili oleh file/path/to/special_key
hadir dalamssh-add -l
output.Contoh
Di mana isi output
ssh-keygen -lf /path/to/special_key
terlihat seperti ini:Dan kami menggunakan `awk '{print $ 2}' untuk memilih kolom ke-2, yang berisi sidik jari, yaitu:
Referensi
sumber
Anda mungkin memiliki alasan tertentu untuk menggunakan
ssh-add
secara eksplisit, tetapi jika Anda hanya ingin "Saya ingin diminta untuk frasa sandi saya saat pertama kali saya menggunakan kunci, tetapi tidak setelah itu," openssh memiliki solusi yang lebih sederhana:Taruh
AddKeysToAgent yes
.ssh/config
file Anda .sumber
ssh-add -K FILE
bekerja dengan baik untuk saya di Mac.Itu masih menunjukkan "Identity ditambahkan:" baris tetapi tidak meminta kata sandi.
Dari halaman manual:
sumber