Nhật ký sshd của tôi ở đâu?


57

Tôi không thể tìm thấy nhật ký sshd của mình ở những nơi tiêu chuẩn.

Những gì tôi đã thử:

  • Không trong /var/log/auth.log
  • Không trong /var/log/secure
  • Đã tìm kiếm hệ thống 'auth.log'và không tìm thấy gì
  • Tôi đã thiết lập /etc/ssh/sshd_configđể sử dụng một cách rõ ràng SyslogFacility AUTHLogLevel INFOvà khởi động lại sshd và vẫn không thể tìm thấy chúng.

Tôi đang sử dụng OpenSSH 6.5p1-2 trên Arch Linux.

Câu trả lời:


51

Hãy thử lệnh này để xem nhật ký từ systemctl:

journalctl -u sshd |tail -100

20
Điều này dường như không hoạt động, nhưng journalctl _COMM=sshdcó.
wingbedubmariner

3
À, vâng - systemctl hoàn toàn phù hợp và có thể dự đoán như bình thường.
g33kz0r

3
Bạn có thể sử dụng -ftùy chọn để theo dõi nhật ký:journalctl -fu sshd
bzeaman

wingbedubmariner - Tôi biết đã gần 4 năm, nhưng ... bạn có nhớ lúc đó bạn đang ở đâu không? Tôi nghi ngờ tệp đơn vị trên bản phân phối của bạn được gọi là "openssh" hoặc chỉ "ssh" chứ không phải là "sshd". Điều với dự án systemd là họ coi các distro là người dùng của họ và các distro được tự do sử dụng bất kỳ tên nào họ muốn cho các tệp đơn vị (như Debian gọi máy chủ web của apache apache2trong khi RedHat gọi nó httpd).
bobpaul

25

Cách tốt hơn để xem phần cuối của nhật ký là:

journalctl -u sshd -n 100

Sử dụng tailtrên đầu ra của journalctlcó thể rất chậm. Phải mất 5 phút trên một máy mà tôi đã thử nó, trong khi lệnh trên trả về ngay lập tức.


3
Và bạn không bị mất màu đường! Nên là giải pháp hàng đầu imo
kuzyn


7

Bạn sẽ có thể lọc tin nhắn sshdbằng cách sử dụng:

journalctl -u ssh

hoặc (tùy thuộc vào phân phối của bạn)

journalctl -u sshd

sẽ hiển thị nhật ký lesstheo định dạng kiểu (bạn có thể tìm kiếm /, điều hướng qua PGUp, PGDown, v.v.).

  • -e đưa bạn đến cuối của bản ghi.
  • -ubộ lọc tham số thông qua trường meta _SYSTEMD_UNIT(ít nhất là trên Debian) được đặt thành ssh.service, do đó sshdsẽ không khớp.
  • -f theo dõi nhật ký trong thời gian thực
  • -n 100hiển thị số dòng đã cho (hữu ích với -f)

Ngoài ra, bạn có thể sử dụng bộ lọc siêu trường:

journalctl _COMM=sshd

Bạn có thể hiển thị toàn bộ bản ghi nhật ký với tất cả các trường meta bằng cách xuất sang JSON:

journalctl -u ssh -o json-pretty

nó sẽ cung cấp cho bạn một cái gì đó như:

    ...
    "_PID" : "7373",
    "_COMM" : "sshd",
    "_EXE" : "/usr/sbin/sshd",
    "_SYSTEMD_CGROUP" : "/system.slice/ssh.service",
    "_SYSTEMD_UNIT" : "ssh.service",
    ...

Trong trường hợp bạn tự hỏi làm thế nào để chỉ hiển thị các thông điệp kernel:

journalctl -k -f

Bạn có một lời giải thích cho cú pháp lạ này ( journalctl _COMM=sshd) không?
Ortomala Lokni

@OrtomalaLokni -ulọc qua trường siêu dữ liệu _SYSTEMD_UNITtrên Debian được đặt thành ssh.service. Tất cả các thông số bắt đầu bằng dấu gạch dưới đang truy cập metafiels. Theo cách tương tự, bạn có thể lọc qua _PIDhoặc _TRANSPORT.
Tombart

1

Hãy xem cấu hình nhật ký hệ thống của bạn. Hầu hết probalby /etc/syslog.confhoặc /etc/rsyslog.conf Bạn nên tìm các dòng với authví dụ trong cấu hình của tôi:

auth,authpriv.* /var/log/auth.log

*.*;auth,authpriv.none -/var/log/syslog


4
Không có những tập tin đó tồn tại. Tôi tin rằng các tệp đó được tạo bởi syslog-ng trong khi Arch đã thay thế tệp đó bằng systemd
HXCaine

Trong khoa học tự động Linux. * Chỉ vào authpriv.* /var/log/securebên trong tệp /etc/rsyslog.conf
Salem F
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.