Bisakah Bash Memberitahu Saya Kunci Publik SSH mana yang Digunakan Untuk Otentikasi?

14

Katakanlah saya ingin melacak rootpengguna saya . Masing-masing dari mereka memiliki kunci pribadi yang unik dan kunci publik mereka telah disimpan /root/.ssh/authorized_keys.

Mengingat bahwa setiap pengguna masuk dengan kunci unik mereka, bagaimana saya dapat mengetahui dari dalam sesi BASH kunci mana yang digunakan untuk otentikasi? Saya sudah mencoba melihat variabel lingkungan ketika saya masuk tetapi tidak bisa melihat apa pun yang menghubungkan sesi saya dengan kunci publik saya.

PP
sumber
Sedikit terkait: pengaturan LogLevel VERBOSE di (openssh) sshd_config Anda akan mencatat sidik jari dari kunci yang digunakan untuk masuk.
andol

Jawaban:

21

Anda bisa menambahkan nama pengguna ke kunci publik di ~/.ssh/authorized_keysserver dan mengekspornya sebagai nilai lingkungan:

environment="REALUSER=realusername" ssh-dsa AAA...

Itu akan mengatur variabel lingkungan REALUSER yang kemudian akan tersedia untuk digunakan dalam bash. Ini hanya akan berfungsi jika PermitUserEnvironmentdisetel ke true padasshd_config

Jenny D
sumber
Whoah .. benarkah? Keren! Anda maksud ~/.ssh/authorized_keys? Saya tidak pernah tahu tentang ini.
PP.
5
Ya itu saja. Anda dapat melakukan banyak hal menarik di sana - man sshakan memberi tahu Anda lebih banyak di bawah judul AUTHORIZED_KEYS FILE FORMAT.
Jenny D
4
Mungkin tergantung pada versinya, tetapi saya harus menggunakan man sshduntuk menemukan AUTHORIZED_KEYS FILE FORMATbagian.
Matthew Crumley
2
Ketahuilah bahwa mengaktifkan PermitUserEnvironment memiliki beberapa implikasi keamanan. Baca man sshd
Florin Andrei