Tôi đã thay đổi cấu hình trong tập tin
/etc/ssh/sshd_config
nhưng chỉ có hiệu lực sau khi khởi động lại máy chủ. Làm thế nào để thay đổi mà không cần khởi động lại máy chủ?
Tôi đã thay đổi cấu hình trong tập tin
/etc/ssh/sshd_config
nhưng chỉ có hiệu lực sau khi khởi động lại máy chủ. Làm thế nào để thay đổi mà không cần khởi động lại máy chủ?
Câu trả lời:
Chỉ cần khởi động lại dịch vụ sshd:
sudo service sshd restart
hoặc là:
sudo /etc/init.d/sshd restart
sudo service ssh restart
sẽ không làm nó. Bạn cần khởi động lại sshd, không phải ssh:
sudo service sshd restart
sudo service ssh restart
hoạt động rất tốt, trong khi sudo service sshd restart
báo cáo "sshd: dịch vụ không được nhận dạng". Không chắc chắn tại sao điều này thay đổi mặc dù ...
Có một cách thậm chí ít xâm phạm hơn để làm điều này, mà không cần khởi động lại dịch vụ SSH.
Từ man sshd
:
sshd đọc lại tệp cấu hình của nó khi nhận được tín hiệu gác máy, SIGHUP, bằng cách tự thực hiện với tên và các tùy chọn mà nó đã được bắt đầu bằng, ví dụ / usr / sbin / sshd.
Vì vậy, bạn có thể sử dụng một lệnh như sau để gửi SIGHUP đến quy trình máy chủ SSH:
sudo kill -SIGHUP $(pgrep -f "sshd -D")
Phần pgrep -f "sshd -D"
này sẽ chỉ trả về PID của quy trình sshd daemon lắng nghe các kết nối mới, vì có khả năng sẽ có các PID khác cho mỗi phiên hoạt động không cần tín hiệu.
sudo pkill -HUP sshd
?
sshd
các tiến trình. sudo pkill -HUP -f "sshd -D"
là một lựa chọn hấp dẫn, nhưng sau đó pkill báo hiệu cho sudo
cha mẹ của chính nó vì dòng lệnh đầy đủ của nó khớp với mẫu tìm kiếm của chính nó. Bạn có thể đưa ra một mô hình không phù hợp với bản thân ... -f "sshd -[D]
, nhưng điều đó làm xáo trộn mọi thứ một chút. Tôi nghĩ rằng phương pháp pgrep dễ dàng hơn cho người học quấn đầu xung quanh.
Khi kiểm tra root
service --status-all | grep ssh
Tôi không có sshd
dịch vụ, nhưng có ssh
dịch vụ trên máy chủ Ubuntu. Sau đó
service ssh restart
Tải lại có thể là một sự thay thế tốt hơn để khởi động lại
sudo service sshd reload
dưới mui xe, nó gửi HUP
tín hiệu đến sshd daemon xử lý gần giống như cách mà Steven K đã trả lời . Sự khác biệt là biến thể này sử dụng killproc
chức năng thay vì kill
lệnh trực tiếp để gửi tín hiệu theo cách chính xác hơn (để giảm các lỗi có thể gửi tín hiệu đến các quy trình sai). Cấu hình được đọc lại mà không cần khởi động lại / dừng dịch vụ.
Tất nhiên là đáng để tìm hiểu chính xác SSH deamon được gọi thực sự như những người khác đã thảo luận.
sudo service ssh restart
để khởi động lại dịch vụ để có hiệu lực. Nhưng hãy nhớ nếu bạn được kết nối thông qua SSH, phiên của bạn sẽ bị chấm dứt.