Bash có thể cho tôi biết khóa công khai SSH nào đã được sử dụng để xác thực không?


14

Hãy nói rằng tôi muốn theo dõi rootngười dùng của mình . Mỗi người trong số họ có một khóa riêng và khóa công khai của họ đã được lưu trữ /root/.ssh/authorized_keys.

Cho rằng mỗi người dùng đăng nhập bằng khóa duy nhất của họ, làm thế nào tôi có thể biết từ trong phiên BASH, khóa nào được sử dụng để xác thực? Tôi đã thử xem xét các biến môi trường khi tôi đăng nhập nhưng không thể thấy bất cứ điều gì liên quan đến phiên của tôi với khóa chung của tôi.


Liên quan một chút: cài đặt ĐỘNG TỪ LogLevel trong sshd_config (openssh) của bạn sẽ ghi lại dấu vân tay của khóa được sử dụng để đăng nhập.
andol

Câu trả lời:


21

Bạn có thể thêm tên người dùng vào khóa chung ~/.ssh/authorized_keystrên máy chủ và xuất nó dưới dạng giá trị môi trường:

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

Điều đó sẽ đặt biến môi trường REALUSER mà sau đó sẽ có sẵn để sử dụng trong bash. Điều này sẽ chỉ hoạt động nếu PermitUserEnvironmentđược đặt thành đúng trongsshd_config


Whoah .. thật sao? Mát mẻ! Ý bạn là ~/.ssh/authorized_keysgì? Tôi chưa bao giờ biết về điều này.
PP.

5
Đúng, đó là nó. Bạn có thể làm rất nhiều điều thú vị ở đó - man sshsẽ cho bạn biết nhiều hơn dưới tiêu đề AUTHORIZED_KEYS FILE FORMAT.
Jenny D

4
Nó có thể phụ thuộc vào phiên bản, nhưng tôi phải sử dụng man sshdđể tìm AUTHORIZED_KEYS FILE FORMATphần.
Matthew Crumley

2
Xin lưu ý rằng việc kích hoạt PermitUserEn Môi trường có một số ý nghĩa bảo mật. Đọc người đàn ông sshd
Florin Andrei
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.