Apa signifikansi yang dimiliki pengguna / host pada akhir file kunci publik SSH?

74

Saya tidak tahu mengapa file kunci publik SSH dihasilkan oleh ssh-keygenmemiliki pengguna dan host pada akhir itu.

Contoh: id_rsa.pub

ssh-rsa ... rest of file ... /CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Perhatikan bagian root@mydomainakhir file.

Jika saya dapat menggunakan kunci publik di mana saja dengan pengguna mana pun untuk mengautentikasi menggunakan kunci pribadi saya, apa arti penting dari root @ mydomain pada proses otentikasi?

Atau apakah itu hanya tempat pemegang untuk mengetahui siapa yang dikeluarkan oleh kami?

Basil A
sumber
2
Saya telah melihat beberapa formulir web yang terlalu bersemangat yang memerlukan bidang komentar termasuk simbol @, tetapi tidak ada alasan teknis untuk ini.
anak ayam

Jawaban:

107

Bidang ini adalah komentar, dan dapat diubah atau diabaikan sesuka hati. Secara user@hostdefault diatur ke oleh ssh-keygen.

Michael Hampton
sumber
1
Singkat dan to the point. Mampu mengubah komentar di akan memecahkan teka-teki untuk saya. Saya pikir itu memiliki semacam peran dalam proses otentikasi ssh.
Basil A
2
@BasilA Saya punya beberapa kunci di mana saya telah menghapus seluruhnya.
Michael Hampton
3
Saat menyiapkan login kunci SSH ke mesin virtual di Google Cloud Compute , GCC menggunakan bidang komentar ini untuk mengidentifikasi nama pengguna pada mesin virtual yang terkait dengan kunci tersebut.
hBy2Py
53

Ini dijelaskan secara singkat di halaman manual untuk sshd(8)bagian tentang kunci resmi:

Protokol 2 kunci publik terdiri dari: pilihan , keytype , kunci base64-encoded , comment.

Dalam opensshkonteks kunci yang diotorisasi, hanya ada makna komentar. Tetapi ada implementasi SSH, yang memberi makna pada bagian ini, seperti misalnya implementasi SSH dalam modem LANCOM menggunakan komentar ini sebagai nama pengguna yang kuncinya valid.

Jakuje
sumber
6
+1 untuk mengutip pria
mgarciaisaia
17

Seperti yang telah ditunjukkan orang lain, ini adalah komentar untuk memungkinkan Anda mengidentifikasi kunci mana yang mana.

Ketika melihat satu kunci di mis. id_rsa.pubItu tidak membuat banyak perbedaan tetapi ketika melihat daftar kunci yang berpotensi panjang, seperti apa yang Anda miliki dalam authorized_keysfile, sangat membantu untuk dapat dengan mudah mengidentifikasi kunci mana adalah yang mana.

Juga, ssh-keygenstandarnya adalah user@hostname, yang untuk kasus penggunaan tipikal adalah pengidentifikasi yang jelas dari kunci itu ( user@domaintidak akan).

Håkan Lindqvist
sumber
5

Sangat, sangat sederhana: Saya dan Anda adalah manusia yang menggunakan mesin. Jadi lihat contoh ini yang Anda poskan:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX root@mydomain

Sebuah mesin dapat membaca ini:

ssh-rsa [piles of gobbledygook]…CA9gyE8HRhNMG6ZDwyhPBbDfX

Manusia dapat membaca komentar ini:

root@mydomain

Orang-orang cenderung lupa bahwa meskipun hal-hal yang mungkin terlihat rumit pada sistem komputer, mereka benar-benar bisa menjadi ton lebih rumit jika kode dirancang hanya untuk konsumsi mesin. Maksud saya melihat kode malware yang tidak jelas. Setelah Anda memecahkan kode dan memformatnya, itu dapat dibaca manusia. Tetapi seseorang harus berusaha keras agar manusia sulit membaca.

Secara default semua jenis file pengkodean dan konfigurasi pada sistem komputer adalah struktur untuk konsumsi manusia karena ... Kita adalah manusia yang menggunakan mesin dan mesin tidak memerlukan hal-hal seperti:

  • Komentar.
  • Lekukan.
  • Variabel dan fungsi ditulis dalam bahasa yang dapat dibaca manusia.

Jadi komentar ini ditujukan untuk Anda dan saya dan tidak ada orang lain. Kemungkinan besar itu akan berhasil tanpa komentar. Tetapi suatu saat sesuatu tidak berfungsi pada jam 3:00 pagi dan Anda sedang mencari kunci publik yang tepat, Anda akan berharap / bermimpi / berdoa komentar ada di sana.

JakeGould
sumber
7
"Mesin tidak perlu hal-hal seperti ... Lekukan" batuk Python batuk
CVn
1
@ MichaelKjörling "... kecuali mereka dibuat peduli dengan mereka." :-)
hBy2Py