Saya sudah mulai menggunakan kunci SSH alih-alih kata sandi baru-baru ini (tentu saja terima kasih kepada GitHub), jadi harap diingat bahwa saya cukup baru dalam keseluruhan konsep ini. Saat ini kunci saya terletak di bawah ~ / .ssh, tapi saya tidak yakin apakah ini praktik yang baik. Misalnya jika saya memiliki beberapa mesin, saya perlu menduplikasi kunci pribadi saya, yang saya pikir tidak diinginkan. Atau, jika HDD saya menjadi kaput, maka saya akan kehilangan kunci-kunci itu, yang (saya kira) juga tidak diinginkan.
Jadi, apa praktik terbaik untuk menyimpan kunci SSH dengan aman, nyaman, dan andal?
Sepertinya menggunakan smartcard adalah sebuah opsi (lihat Smartcard untuk menyimpan kunci gpg / ssh (Linux) - apa yang saya butuhkan? ), Apakah ini yang terbaik?
Pembaruan: Alasan pertanyaannya adalah bahwa banyak layanan (seperti GitHub, AWS EC2) memberikan panduan tentang cara mengatur kunci SSH untuk menggunakan layanan, tetapi sedikit atau tidak ada latar belakang (seperti, apa yang harus dilakukan jika Anda telah memiliki kunci yang dibuat oleh ssh-keygen
[1], langkah keamanan apa yang disarankan). Dan tidak jelas apakah info itu sebenarnya tidak penting, atau Anda diharapkan mengetahuinya 'secara default'.
Untuk meringkas jawaban hingga titik ini (tapi tolong bacalah, dan jika Anda memiliki sesuatu untuk ditambahkan — tolong lakukan): sepertinya dalam kasus ini tidak apa-apa jika Anda membiarkan kunci pribadi Anda di ~ / .ssh, selama Anda jauhkan dari orang lain; tetapi pastikan bahwa Anda memiliki cara lain untuk mengakses layanan untuk mengunggah atau membuat kunci baru jika Anda kehilangan satu (yang biasanya terjadi).
[1] GitHub digunakan untuk memberikan bantuan tentang cara mengelola beberapa kunci .
Jawaban:
Tidak, sebenarnya tidak. Jika Anda memiliki beberapa mesin, Anda cukup membuat kunci pribadi yang terpisah pada masing-masing mesin. Untuk setiap kunci pribadi, cukup unggah kunci publik yang sesuai ke GitHub menggunakan proses yang sama.
Tidak juga; jika Anda kehilangan kunci pribadi, cukup buat yang baru dan unggah kunci publik yang sesuai.
Untuk apa nilainya, Anda benar bahwa menduplikasi kunci pribadi sangat tidak diinginkan. Idealnya, kunci pribadi harus dibuat dalam satu file (
~/.ssh/id_rsa
misalnya) dan tidak boleh meninggalkan file itu - yaitu, itu tidak boleh disalin, dipindahkan, dan terutama tidak ditransfer melalui jaringan. (misalnya saya mengecualikan mereka dari cadangan) Karena sifat protokol otentikasi asimetris, Anda hanya perlu khawatir tentang menjaga kunci pribadi Anda dari tangan orang lain. Jika Anda sedikit berlebihan dan Anda kehilangan jejaknya sendiri, itu biasanya bukan masalah besar. (Ini jangan dikacaukan dengan kunci privat enkripsi asimetris , mis. Kunci GPG, yang mungkin ingin Anda pertahankan.)sumber
Saya ingin menambahkan bahwa ~ / .ssh / dapat dibaca oleh browser Anda jika Anda menggunakan akun pengguna yang sama untuk menjalankan keduanya.
Cobalah! Arahkan browser Anda ke kunci pribadi Anda di direktori home Anda. Itu menyenangkan.
Jadi saya akan merekomendasikan menyimpan ssh-keys di direktori home dari akun pengguna lain.
sebuah kata pada kunci-kunci pelindung frasa sandi
look_at_keys.html
sumber
Ada alat yang sangat bagus bernama KeePass2 ( http://keepass.info/ ) dengan ekstensi ( http://lechnology.com/software/keeagent/ )
Anda dapat menyimpan Kata Sandi, Kunci SSH, dan banyak lagi di sana (pada halaman resmi KeePass ada ekstensi yang jauh lebih berguna)
Jika Anda ingin masuk secara otomatis dengan Kunci SSH Anda, Anda hanya perlu menginstal PutTY, Pageant dan KeePass dengan KeeAgent. Jika Anda mengonfigurasinya dengan benar, Anda tidak perlu mengatur Kunci di Putty, Pageant atau FileZilla.
Saya menggunakannya sendiri dan saya cukup senang tentang hal itu. Saya memiliki lebih dari 30 VPS dan Root Server dengan sejumlah Kunci SSH yang berbeda dan satu-satunya yang harus saya lakukan adalah membuka KeePass (Ini bukan Kata Sandi Utama saya) dan kemudian saya hanya perlu mengetikkan di konsol frasa sandi saya.
sumber
Saya akan merekomendasikan menyimpan kunci pribadi:
Menurut saya, tempat terbaik adalah:
Bahkan lebih baik, cukup cetak saja, dan letakkan di brankas tahan api.
sumber
Saya memiliki file tar yang memiliki pengaturan dir pengguna saya (.bashrc, .ssh / dan file konfigurasi lainnya) yang saya simpan di tempat yang aman. Ketika saya mendapatkan akun shell baru di mana saja, saya unzip file tar ke dalamnya.
Anda hanya harus meletakkan kunci pribadi ke server yang Anda percayai, jika tidak, Anda harus membuat kunci pribadi baru di server hanya untuk server itu, dan mengizinkannya mengakses ke hal-hal yang Anda ingin akses.
Secara pribadi, saya nyaman hanya menyalin .ssh / barang-barang saya di mana-mana (itu juga berarti dengan kunci ssh biasa mendapat akses ssh langsung, karena sudah ada dalam file Authorized_key).
sumber
Anda dapat menyimpan kunci ssh di direktori terpisah di dalam partisi terenkripsi. Kemudian Anda dapat menggunakan ssh menunjuk ke direktori itu dengan
-i
:Deskripsi lengkap (
man ssh
):Pendekatan saya terhadap keamanan adalah bahwa saya membagi informasi menjadi pribadi dan umum. Saya tidak ingin mengenkripsi seluruh partisi rumah saya, itu sebabnya saya menyalin file rahasia (seperti yang ada di dalamnya
~/.ssh
) ke partisi yang dienkripsi.Saya pikir ini memberikan keamanan yang agak efisien, karena malware tidak akan menemukan apa pun di ~ / .ssh, dan mungkin itu tidak akan memindai seluruh sistem atau profil shell Anda untuk menemukan lokasi itu.
setel path ke file konfigurasi.
PS Saya akan membuat alias
alias ssh='ssh -i ... -F ...'
dan memasukkannya ke profil Anda.PPS Saya belum memeriksa ini, dan saya tidak tahu bagaimana program lain (seperti git) akan bekerja dengan pengaturan ssh ini.
sumber