Menerbitkan id_rsa.pub untuk pengaturan lingkungan baru yang lebih mudah?

20

Untuk membuat pengaturan SSH tanpa kata sandi lebih mudah pada mesin dan lingkungan baru, apakah ada alasan mengapa id_rsa.pubfile (hanya setengah publik dari pasangan kunci) tidak dapat dipublikasikan di suatu tempat di web? Misalnya dalam repositori dotfiles GitHub.

Saya sadar bahwa:

  • yang id_rsaberkas (setengah swasta dari pasangan kunci) harus hati-hati dijaga dan
  • pasangan kunci harus dilindungi dengan frasa sandi

Tetapi pencarian saya belum menemukan saran eksplisit bahwa ini diperbolehkan atau didorong.

Karena penasaran, apakah saran yang sama berlaku untuk keypair tanpa frasa sandi?

DouglasDD
sumber
2
Meskipun mungkin aman dalam kasus umum (dengan asumsi kunci yang dihasilkan dengan benar), kesalahan telah ada di masa lalu ( bug OpenSSH Debian yang terkenal ) yang sangat membatasi ruang kunci dan meninggalkan kunci pribadi yang dapat ditebak berdasarkan kunci publik. Jadi selalu ada risiko itu - bagaimana Anda tahu bahwa keygen SSH Anda tidak menderita cacat yang serupa?
Bob
2
Satu mekanisme untuk ini sudah ada: ssh-import-id
MikeyB
sehingga Anda dapat berbagi id_rsa.pub antar mesin?
Federico

Jawaban:

26

RSA dirancang khusus untuk memungkinkan Anda membagikan kunci publik itu, jadi ya, Anda bisa menerbitkannya. Ini sangat mirip dengan cara x.509 (dan SSL) dengan sertifikat RSA bekerja.

Sebelum menerbitkan file, sebenarnya lihatlah; satu-satunya hal yang perlu ada di sana adalah kata kunci "ssh-rsa" dan kunci base64-encoded. Anda mungkin ingin mempertahankannya (saya yakin ini adalah default sekarang).

Ini benar apakah kunci memiliki kata sandi atau bukan. Frasa sandi mengenkripsi kunci pribadi dan tidak mempengaruhi kunci publik.

Pastikan, seperti biasa, bahwa kunci Anda cukup entropis dan besar. Jika dihasilkan oleh PRNG yang rusak, itu mungkin dapat diprediksi. Namun, mempublikasikan ini tidak menimbulkan banyak risiko tambahan, karena jika keyspace kecil maka penyerang dapat dengan mudah mencoba dengan semua kunci di keyspace yang disebutkan sampai mereka mendapatkan yang benar.

Saya sarankan menggunakan kunci 4096-bit (sebutkan -b 4096), sehingga akan lebih sulit dari biasanya (standarnya adalah 2048) bagi seseorang untuk membalikkan kunci publik Anda menjadi kunci pribadi. Itu adalah satu-satunya risiko yang signifikan dalam melakukan ini, dan itu bukan yang sangat besar karena algoritma ini dirancang khusus untuk membuatnya tidak praktis.

Falcon Momot
sumber
33

Sudah. :) Cukup masukkan ".keys" di akhir URL profil Github Anda, seperti:

https://github.com/tjmcewan.keys

tjmcewan
sumber
Ini benar-benar menarik. Untuk apa GitHub mengekspos ini?
richardneish
Kenyamanan :) Ini adalah kunci publik, setelah semua - itu dimaksudkan untuk dibagikan. Sekarang jauh lebih mudah untuk mengambil kunci kolaborator baru dan menambahkannya ke server Anda. Menyimpan email bolak-balik.
tjmcewan
Saya tidak menyadari mereka melakukan itu.
Zeb
1
+1 untuk penemuan menarik di Github.
Raymond Tau
5

Sementara sebagai aturan saya tidak merekomendasikan menempatkan konfigurasi spesifik Anda sendiri di repositori proyek publik (dengan asumsi repo adalah untuk semua orang dan konfigurasi Anda adalah untuk Anda sendiri , itu hanya sedikit kasar), implikasi keamanan minimal.

Satu-satunya vektor serangan yang masuk akal adalah entah bagaimana menggunakan kunci publik itu untuk mengidentifikasi Anda dalam beberapa konteks berbahaya. Apa yang ada di luar saya, tetapi kunci publik tidak secara unik mengidentifikasi kunci pribadi, meskipun tidak memberikan petunjuk mengenai asal-usulnya.

Ada vektor kasus serangan sudut yang mungkin tidak berlaku, tetapi jika Anda akan mengingat kegagalan dengan Debian secara tidak sengaja memecahkan openssl PRNG , kunci ssh apa pun yang dihasilkan pada sistem yang terpengaruh mudah diprediksi dan dapat diidentifikasi dengan kunci publiknya. Jadi dalam bahwa kasus, penerbitan kunci publik bisa mendarat Anda dalam kesulitan. Atau lebih tepatnya, menggunakan kunci itu untuk apa pun bisa membuat Anda dalam kesulitan.

tylerl
sumber
vektor 1. bagaimana dengan tabrakan sidik jari? itu jauh lebih pendek daripada kunci publik itu sendiri; serangan vektor 2 mim seperti "oops server harus diinstal ulang memiliki kunci yang berbeda, tapi tolong tetap masuk" dan otentikasi berhasil palsu untuk kunci publik pengguna yang diberikan (jika itu mungkin, saya tidak yakin)
1

Ya, Anda dapat mempublikasikan pubkey SSH Anda. Dan Anda dapat mempublikasikan sidik jari server menggunakan catatan SSHFP dalam DNS! Ini bisa sangat mudah, misalnya, jika Anda perlu memperbarui / mengubah kunci SSH server.

jldugger
sumber