Saya perlu melakukan audit kunci SSH untuk GitHub, tetapi saya tidak yakin bagaimana menemukan sidik jari kunci RSA saya. Saya awalnya mengikuti panduan untuk membuat kunci SSH di Linux.
Apa perintah yang harus saya masukkan untuk menemukan sidik jari kunci RSA saya saat ini?
function fingerprint() { ssh-keygen -lf $1 -E md5 }
Lalu (setelah Anda sumber bashrc) Anda bisa mendapatkan sidik jari denganfingerprint ~/.ssh/key_file
;
di dalam tubuh, jadi gunakanfunction fingerprint() { ssh-keygen -lf $1 -E md5; }
saja.Jawaban:
Jalankan perintah berikut untuk mengambil sidik jari SHA256 dari kunci SSH Anda (
-l
berarti "daftar" alih-alih membuat kunci baru,-f
berarti "nama file"):Jadi misalnya, pada mesin saya perintah yang saya jalankan adalah (menggunakan kunci publik RSA):
Untuk mendapatkan format sidik jari GitHub (MD5) dengan versi ssh-keygen yang lebih baru, jalankan:
Informasi bonus:
ssh-keygen -lf
juga berfungsiknown_hosts
danauthorized_keys
file.Untuk menemukan sebagian besar kunci publik di sistem Linux / Unix / OS X, jalankan
(Jika Anda ingin melihat di dalam homedir pengguna lain, Anda harus root atau sudo.)
Ini
ssh-add -l
sangat mirip, tetapi mencantumkan sidik jari kunci yang ditambahkan ke agen Anda. (Pengguna OS X perhatikan bahwa SSH tanpa kata sandi ajaib melalui Keychain tidak sama dengan menggunakan ssh-agent.)sumber
.ssh/id_rsa
harus sama dengan untuk.ssh/id_rsa.pub
. Jadi, Anda dapat menggunakan salah satu (dan, jika Anda seperti saya dan suka menyelesaikan-tab, itu membuat pekerjaan mengambil 2 penekanan tombol lebih sedikit. Efisiensi!).ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub
jika Anda tidak ingin keluaran standar sha256Perintah SSH yang lebih baru akan mencantumkan sidik jari sebagai Kunci SHA256 .
Sebagai contoh:
Jika Anda perlu membandingkannya dengan sidik jari lama Anda juga perlu menentukan untuk menggunakan fungsi hashing sidik jari MD5 .
Juga tersedia:
-E sha1
Perbarui ... YA ... ya ... Saya tahu ... Kunci DSA untuk SSH seharusnya tidak lagi digunakan, kunci RSA yang lebih lama atau kunci ekliptik yang lebih baru harus digunakan sebagai gantinya.
Untuk 'admin' yang terus mengedit perintah yang saya gunakan di atas. BERHENTI MENGUBAHNYA! Anda membuat perintah dan hasil yang dihasilkan salah-cocok!
sumber
ssh
untuk menunjukkan kepada Anda sidik jari MD5 server yang digunakanssh -o FingerprintHash=md5 example.org
, sebagaimana disebutkan dalam jawaban ini . (Saya hanya mencari itu, dan jawaban ini membawa saya ke yang itu, jadi saya pikir orang lain mungkin memiliki pengalaman yang sama.)Untuk melihat kunci Anda di Ubuntu, cukup masukkan perintah berikut di terminal Anda:
ssh-add -l
Anda akan mendapatkan output seperti ini:
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23
yourName @ ubuntu (RSA)Namun jika Anda mendapatkan kesalahan seperti;
Could not open a connection to your authentication agent.
Maka itu berarti ssh-agent tidak berjalan. Anda dapat memulai / menjalankannya dengan:
ssh-agent bash
(terima kasih kepada @Richard di komentar) dan kemudian jalankan kembalissh-add -l
sumber
ssh-agent bash
dan melanjutkan kehidupan. Dalam hidup seperti biasa;ssh-agent
tidak dijamin sebagai implementasi yang konsisten pada semua sistem.Pasangan kunci (kunci pribadi dan publik) akan memiliki sidik jari yang sama; jadi jika Anda tidak dapat mengingat kunci pribadi mana yang milik kunci publik tersebut, temukan kecocokan dengan membandingkan sidik jari mereka.
Jawaban yang paling banyak dipilih oleh Marvin Vinto memberikan sidik jari dari file kunci SSH publik . Sidik jari dari kunci SSH pribadi yang sesuai juga dapat ditanyakan, tetapi memerlukan serangkaian langkah yang lebih panjang, seperti yang ditunjukkan di bawah ini.
Masukkan agen SSH, jika Anda belum melakukannya. Cara termudah adalah dengan memohon
atau
(atau shell lain yang Anda gunakan).
Muat kunci pribadi yang ingin Anda uji:
Anda akan diminta memasukkan kata sandi jika kunci dilindungi kata sandi.
Sekarang, seperti yang orang lain katakan, ketik
fd:bc:...
adalah sidik jari yang Anda cari. Jika ada beberapa tombol, beberapa baris akan dicetak, dan baris terakhir berisi sidik jari dari kunci yang terakhir dimuat.Jika Anda ingin menghentikan agen (yaitu, jika Anda memanggil langkah 1 di atas), maka cukup ketik `keluar 'pada shell, dan Anda akan kembali pada shell sebelum memuat ssh agent.
Saya tidak menambahkan informasi baru, tetapi mudah-mudahan jawaban ini jelas bagi pengguna dari semua tingkatan.
sumber
ssh-add -l
danssh-keygen -l
mengembalikan sidik jari yang sama untuk keypair yang diberikan. Juga, itu harus huruf kecil-l
, bukan huruf besar.ssh-add -l
danssh-keygen -l
mengembalikan sidik jari yang sama untuk keypair yang diberikan. Tetapi saya tidak mengerti apa yang salah dengan pernyataan asli saya pada paragraf pertama. Saya menambahkan kalimat untuk menjelaskan.ssh-agent
. Dengan asumsiPRIVKEY
telah diatur ke file kunci pribadi, danPUBKEY
telah diatur ke file kunci publik (awalnya tidak ada), lakukan:ssh-keygen -y -f "${PRIVKEY}" > "${PUBKEY}"
untuk membuat kembali kunci publik SSH, makassh-keygen -E md5 -l -v -f "${PUBKEY}"
jika Anda ingin hash MD5 atau hanyassh-keygen -l -v -f "${PUBKEY}"
jika Anda ingin hash SHA-256 (SHA-256 menjadi default sekarang).Cara tercepat jika kunci Anda ada di agen SSH:
Setiap kunci dalam agen akan dicetak sebagai:
sumber
Memproduksi ulang konten dari forum AWS di sini, karena menurut saya bermanfaat untuk kasus penggunaan saya - saya ingin memeriksa kunci mana yang cocok dengan yang telah saya impor ke AWS
openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -c
Di mana: -
primary.pem
adalah kunci pribadi untuk diperiksasumber
juga akan bekerja pada Mac OS X v10.8 (Mountain Lion) - v10.10 (Yosemite).
Ini juga mendukung opsi
-E
untuk menentukan format sidik jari sehingga jika diperlukan MD5 (sering digunakan, misalnya oleh GitHub), cukup tambahkan-E md5
ke perintah.sumber
man ssh-add
opsi tersebut-l
adalah "Daftar sidik jari dari semua identitas yang saat ini diwakili oleh agen"Di Windows, jika Anda menjalankan Putty / Pageant, sidik jari terdaftar saat Anda memuat kunci Putty (.ppk) ke dalam Pageant. Ini sangat berguna jika Anda lupa yang mana yang Anda gunakan.
sumber
Ini adalah fungsi shell yang saya gunakan untuk mendapatkan sidik jari kunci SSH untuk membuat tetesan DigitalOcean :
Masukkan ke dalam
~/.bashrc
, sumber, dan kemudian Anda bisa mendapatkan sidik jari sebagai berikut:sumber
Jika agen SSH Anda berjalan, itu benar
untuk mendaftar sidik jari RSA dari semua identitas, atau
-L
untuk daftar kunci publik.Jika agen Anda tidak berjalan, coba:
Dan untuk kunci publik Anda:
Jika Anda menerima pesan: ' Agen tidak memiliki identitas. ', maka Anda harus membuat kunci RSA Anda
ssh-keygen
terlebih dahulu.sumber
/etc/ssh/ssh_host_ed25519_key.pub
. Bagian kedua dari pertanyaan tetap ada: apakah ada kerugian menggunakan kunci yang dibuat secara otomatis ini?Kadang-kadang Anda dapat memiliki banyak kunci di
~/.ssh
direktori Anda , dan tidak tahu mana yang cocok dengan sidik jari yang ditunjukkan oleh GitHub / Gitlab / etc.Berikut cara menunjukkan nama file kunci dan sidik jari MD5 dari semua kunci di
~/.ssh
direktori Anda :(Untuk arti parameter, lihat jawaban ini tentang
find
perintah .Perhatikan bahwa file pribadi / publik yang dimiliki oleh satu kunci memiliki sidik jari yang sama, sehingga Anda akan melihat duplikat.
sumber
Google Compute Engine menunjukkan sidik jari kunci host SSH dalam output serial contoh Linux. API dapat memperoleh data itu dari GCE, dan tidak perlu masuk ke instance.
Saya tidak menemukannya di tempat lain selain dari keluaran serial. Saya pikir sidik jari harus di tempat yang lebih ramah-programmer.
Namun, tampaknya itu tergantung pada jenis instance. Saya menggunakan instance Debian 7 (Wheezy) f1-micro.
sumber
Untuk memeriksa server SSH jarak jauh sebelum koneksi pertama, Anda dapat melihat www.server-stats.net/ssh/ untuk melihat semua kunci SHH untuk server, serta dari saat kunci diketahui.
Itu tidak seperti sertifikat SSL, tapi jelas harus dilakukan sebelum menghubungkan ke server SSH untuk pertama kalinya.
sumber
Pada Fedora saya melakukan
locate ~/.ssh
yang memberitahu saya kunci ada disumber
~/.ssh/id*.pub
adalah) dan ingin mendapatkan sidik jari mereka.