Các lệnh đăng nhập được thực thi trên ssh


8

Tôi muốn đăng nhập tất cả các lệnh được thực hiện qua SSH.

Nói,

ssh something@server.com COMMAND

Tôi muốn đăng nhập "THÔNG TIN" trên server.com

Tôi đã tìm kiếm rộng rãi nhưng không thể tìm thấy bất cứ điều gì.

Có một câu hỏi tương tự nữa nhưng tôi không nghĩ có một giải pháp nào ở đó.

Cách đăng nhập "thực thi từ xa qua SSH"

Tôi có thể xem trực tiếp với

pstree -p | grep ssh

Tôi đã thử Snoopy, audd và sudosh nhưng không thể đăng nhập các lệnh đó qua ssh.

Có một http://freecode.com/projects/shwatchr . nhưng tôi không thể tải tập lệnh để kiểm tra.

Có cách nào khác để thực hiện điều này?

Cảm ơn.........

Câu trả lời:


4

Thay vì tập trung vào SSH, hãy lùi lại một bước và xem xét sử dụng audd. Tôi giả định rằng những gì bạn thực sự muốn là theo dõi người dùng, không theo dõi những gì được thực hiện từ SSH trái ngược với các loại đăng nhập khác.

man auditctl sẽ cho bạn một điểm khởi đầu.


Gợi ý tốt đẹp, nhưng đối với tôi quá trừu tượng. Làm thế nào để sử dụng auditctlđể đăng nhập các lệnh ssh?
guettli

3

tôi đã thực hiện một thử nghiệm bằng cách sử dụng tùy chọn này trong phòng thí nghiệm máy chủ của mình và nó hoạt động, nhưng có lẽ có cách tốt hơn.

ForceCommand logger -p user.notice "$SSH_ORIGINAL_COMMAND"

Điều này không ghi lại lệnh đã gửi nhưng không thực thi nó trên hệ thống từ xa.
Michael McGarrah

1

Tôi đã tìm thấy một cách để làm điều này. Có một kịch bản perl được viết bởi John M. Simpson ( https://www.jms1.net/ ).

Tất cả bạn phải làm là thêm

command="#{path to log-session}"

trước mỗi khóa trong ~ / .ssh / ủy quyền của bạn

Nó chỉ hoạt động nếu bạn có một ssh không có mật khẩu, nhưng điều này giải quyết mục đích của tôi ở một mức độ nào đó.

http://www.jms1.net/log-session


1

Trong trường hợp của tôi, tôi đã có cùng một yêu cầu chính xác. Nhắc nhở duy nhất với phương pháp này là tôi không chắc làm thế nào để nó hoạt động nếu bạn không sử dụng các phím ssh. Tôi đã tạo một tập lệnh bash ngắn để ghi lại lệnh trước khi thực hiện nó:

#!/bin/bash
echo "$(date -Is) ${SSH_ORIGINAL_COMMAND}" >> ~/sshcommands.log
sh "${SSH_ORIGINAL_COMMAND}"

Tôi đã lưu lệnh này vào ~ / bin / log-lệnh sau đó làm cho nó có thể thực thi được ( chmod +x ~/bin/log-commands).

Trong tệp ủy quyền, tôi đã thêm command=tham số vào dòng thuộc khóa SSH mà tôi muốn có nhật ký, vì vậy nó sẽ bị buộc phải chạy tập lệnh lệnh log:

lệnh = "/ home / tricky / bin / log-Command" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ ...... 6J0C1 tricky@tricky-testing.mydomain

Nếu ai đó biết về việc ghi nhật ký nhưng không muốn bạn xem các lệnh, họ có thể chỉ cần tham gia vào một phiên tương tác. Như bạn đã đề cập, bạn đã thử snoopy, điều này sẽ làm điều đó cho bạn. Các lựa chọn thay thế phổ biến mà tôi chưa từng thử là rootsh, sudosh và log-user-session.


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.