Saya mencoba mengeraskan pengaturan ssh saya menggunakan bahan ini. Ini berfungsi dengan baik, tetapi saya memiliki pertanyaan yang sulit saya temukan jawabannya.
Adakah yang tahu jika ada cara untuk memeriksa ssh Host/tanda tangan sertifikat pengguna terhadap SSH CA? Saya tahu bahwa saya hanya dapat mencoba ssh ke Host, yang memegang sertifikat Host itu, dan jika terhubung daripada tanda tangan jelas tidak apa-apa…
Tapi saya sedang menulis tugas otomatisasi dan saya memerlukan cara terprogram untuk memastikan itu file sertifikat ditandatangani oleh CA. Ucapkan beberapa ssh-keygen
perintah atau apa pun.
PERBARUI:
Seperti yang diusulkan @PKapp:
Saya dapat membandingkan dua keluaran:Sidik Jari Penandatanganan CA dari sertifikat sisi Server dan Sidik Jari CA itu sendiri
sudo ssh-keygen -L -f /etc/ssh/ssh_host_ed25519_key-cert.pub | fgrep "Signing CA" | sed 's/^[ t]*//' | cut -d ' ' -f 4
SHA256:LkdPQLdx4tuZp7pG0g6nAJqilFd6ZzjGdgVEV9elrdA
sudo ssh-keygen -l -f /etc/ssh/id_ed25519-HostCA.pub | cut -d ' ' -f 2
SHA256:LkdPQLdx4tuZp7pG0g6nAJqilFd6ZzjGdgVEV9elrdA
Jika keluaran yang difilter identik, maka sertifikatnya cocok…
Jawaban yang Diterima:
Untuk mendapatkan sertifikat host ssh dari jarak jauh, Anda dapat menggunakan ssh-keyscan -c <hostname>
(tanpa -c
opsi, Anda hanya akan mendapatkan kunci host). Untuk membatasi jenis sertifikat tertentu, Anda dapat menyertakan -t type
, menggunakan ssh-rsa
tidak [email protected]
, jika perlu.
Kemudian, Anda dapat mengekstrak detail sertifikat, termasuk kunci publik CA Penandatanganan, dengan ssh-keygen -L -f <certfile>
. Jika Anda menggunakan (huruf kecil) -l
sebagai gantinya, lalu ssh-keygen
hanya menampilkan informasi tentang kunci host dasar (publik) yang disematkan dalam sertifikat, bukan semua elemen sertifikat.