Câu trả lời:
Điều này đặc trưng cho OpenSSH từ phiên bản 3.9 trở đi.
Đối với mỗi kết nối mới, sshd sẽ tự thực hiện lại, để đảm bảo rằng tất cả các ngẫu nhiên thời gian thực hiện được tạo lại cho mỗi kết nối mới. Để sshd tự thực hiện lại, nó cần biết đường dẫn đầy đủ đến chính nó.
Đây là một trích dẫn từ các ghi chú phát hành cho 3.9:
- Làm cho sshd (8) tự thực hiện lại khi chấp nhận kết nối mới. Biện pháp bảo mật này đảm bảo rằng tất cả các ngẫu nhiên trong thời gian thực hiện được áp dụng lại cho mỗi kết nối thay vì một lần, trong suốt vòng đời của quy trình tổng thể. Điều này bao gồm ánh xạ mmap và malloc, địa chỉ thư viện dùng chung, thứ tự ánh xạ thư viện dùng chung, cookie ProPolice và StackGhost trên các hệ thống hỗ trợ những thứ đó
Trong mọi trường hợp, thường là tốt hơn để khởi động lại một dịch vụ bằng cách sử dụng tập lệnh init (ví dụ /etc/init.d/sshd restart
) hoặc sử dụng service sshd restart
. Nếu không có gì khác, nó sẽ giúp bạn xác minh rằng dịch vụ sẽ bắt đầu đúng sau lần khởi động lại tiếp theo ...
( câu trả lời ban đầu, bây giờ không liên quan: Dự đoán đầu tiên của tôi sẽ /usr/sbin
không nằm trong $ PATH của bạn. )
Điều này là để ngăn người khác tiêm sshd
chương trình vào một trong những thư mục trong bạn PATH
và bạn vô tình thực hiện chương trình đó. Đây bài từ năm 2004 đã mô tả vấn đề này.