Bắt đầu SSH tự động khi khởi động


15

Hoàn toàn mới cho linux và Ubn Ubuntu. Thiết lập một máy để học sâu / mạng lưới thần kinh. Cho đến nay nó đang diễn ra tốt đẹp. Đã cài đặt mọi thứ và chạy. Tôi muốn có thể ssh từ máy tính xách tay Mac của tôi để sử dụng hệ thống. Tôi đã cài đặt openssh và làm việc đó.

Tuy nhiên, khi tôi khởi động lại máy, máy chủ ssh không khởi động lại. Tôi kiểm tra với sudo service ssh statusvà nó báo cáo và lỗi. Sau đó tôi có thể bắt đầu nó và mọi thứ hoạt động tốt.

Suy nghĩ đầu tiên của tôi là tôi cần bảo nó bắt đầu khởi động lại và tôi đã tìm thấy chủ đề này nói rằng nó nên bắt đầu theo mặc định và tôi không cần thêm chrontab hoặc bất cứ thứ gì tương tự. Vì vậy, tôi không nghĩ rằng đó là nó.

Sau đó, tôi tìm thấy chủ đề này đề nghị sử dụng lệnh sudo update-rc.d ssh defaults, nhưng chủ đề đó khá cũ và có vẻ như câu trả lời đó có thể không đúng ngay cả khi đó?

Vì vậy, sau đó tôi tìm thấy chủ đề này đề nghị bình luận ra ListenAddressdòng trong tệp sshd_config . Về cơ bản, nó cho biết nếu HearAddress được sử dụng, nó có thể cố gắng lấy IP trước khi DCHP được chỉ định và do đó khởi động thất bại. Mà có ý nghĩa. Nhưng tôi cần tham số đó để làm cho chuyển tiếp cổng của tôi hoạt động trên mạng gia đình của tôi.

Tài liệu này dưới mục nhập cho ListenAddress nói rằng

The default is to listen on all local addresses.

Vì vậy, có lẽ tôi không cần nó để làm cho cổng chuyển tiếp hoạt động?

Tôi đã theo dõi chủ đề trước với báo cáo lỗi này cũng khá cũ, nhưng đề nghị sử dụng trình quản lý mạng để khởi động lại ssh mỗi khi netmanager nhận được IP mới.

echo /etc/init.d/ssh restart > /etc/NetworkManager/dispatcher.d/10ssh
chmod 755 /etc/NetworkManager/dispatcher.d/10ssh

Đó là nhiều hơn nhiều so với noobie này có thể đánh giá tại thời điểm này. Có an toàn không? Đó có phải là cách để làm điều này? Có điều gì khác đã được thực hiện trong 7 năm qua?

Bất cứ lời khuyên nào cũng tuyệt vời cả. Cảm ơn.


Gee, tôi chỉ cần cài đặt gói openssh-server và cấu hình nó đúng cách. Máy chủ ssh của tôi đã tự động khởi động đúng cách mỗi lần kể từ đó. Không cần thêm bất kỳ khó khăn nào cả.
dùng535733

1
Bạn có đang sử dụng chuyển tiếp cổng và bạn không cần sử dụng tham số ListenAddress? Nếu vậy, bạn có thể chia sẻ "cấu hình đúng" bao gồm những gì không?
Rothrock

Đối với tất cả điều này, bạn chưa cung cấp bất kỳ thông tin nào về trạng thái của SSH khi bạn khởi động lần đầu tiên. Làm những gì systemctl status sshđầu ra?
muru

Vấn đề của bạn có vẻ tương tự như vậy (dường như chưa được giải quyết) SSH Daemon không bắt đầu theo cách thông thường - bạn có thể vui lòng chỉnh sửa câu hỏi của mình để bao gồm đầu ra củasystemctl status NetworkManager-wait-online.service
Steelepage 13/03/2017

1
Làm thế nào để bạn có thiết lập chuyển tiếp cổng của bạn? Tôi hoàn toàn không sử dụng HearAddress và mọi thứ hoạt động tốt trên máy chủ nhà của tôi. Bộ định tuyến của tôi chuyển tiếp bất cứ thứ gì có trên một cổng tôi chỉ định (22 nếu bạn muốn cổng chuẩn, nhưng bạn có thể sử dụng bất cứ thứ gì miễn là nó không xung đột với các dịch vụ khác trên mạng quốc tế của bạn) với máy tính tôi muốn. Ví dụ, mọi thứ xuất hiện trên cổng 12345 đều được chuyển tiếp đến cổng 22 trên máy chủ CentOS của tôi. Bất cứ điều gì xảy ra trên 12346 đều được chuyển đến cổng 22 của RasPi không đầu của tôi. Bất cứ điều gì xuất hiện trên 12347 đều chuyển đến cổng 6697 cho người phát thanh IRC trên RasPi của tôi.
RobertRSeatussy

Câu trả lời:


43

Bạn đã thử chỉ đơn giản là thiết lập

sudo systemctl enable ssh

?

Đó là cách tôi có ssh của tôi để chạy khi khởi động.

**** Tôi sẽ để lại phần trên của câu trả lời trong trường hợp nó hữu ích cho những người khác đi qua bài đăng này ****

Trích dẫn nhận xét của tôi từ phía trên:

Làm thế nào để bạn có thiết lập chuyển tiếp cổng của bạn? Tôi hoàn toàn không sử dụng HearAddress và mọi thứ hoạt động tốt trên máy chủ nhà của tôi. Bộ định tuyến của tôi chuyển tiếp mọi thứ xuất hiện trên một cổng mà tôi chỉ định (22 nếu bạn muốn cổng chuẩn, nhưng bạn có thể sử dụng bất cứ thứ gì miễn là nó không xung đột với các dịch vụ khác trên mạng quốc tế của bạn) với máy tính tôi muốn. Ví dụ, mọi thứ xuất hiện trên cổng 12345 đều được chuyển tiếp đến cổng 22 trên máy chủ CentOS của tôi. Bất cứ điều gì xảy ra trên 12346 đều được chuyển đến cổng 22 của RasPi không đầu của tôi. Bất cứ điều gì xuất hiện trên 12347 đều chuyển đến cổng 6697 cho người phát thanh IRC trên RasPi của tôi

HearAddress không liên quan gì đến việc chuyển cổng, ListenAdress có thể được sử dụng cho một máy chủ được cấu hình với nhiều địa chỉ IP qua một hoặc nhiều NIC. Trích dẫn từ đây (toàn bộ trang là một lời giải thích tốt): https://www.cyberciti.biz/tips/howto-openssh-sshd-listen-multipl-ip-address.html

Giả sử bạn có tổng cộng 8 địa chỉ IP công cộng và một địa chỉ IP riêng. Bạn> chỉ muốn liên kết sshd với một IP công cộng được chọn (ví dụ 70.5.xx.xx) và riêng tư> IP (10.1.5.1).

May mắn thay, có một cách dễ dàng để đạt được điều này bằng cách sử dụng tùy chọn ListenAddress. Nó> chỉ định địa chỉ sshd nên lắng nghe. Nếu lệnh này được bỏ qua từ tệp cấu hình, sshd sẽ liên kết hoặc liệt kê trên tất cả địa chỉ IP> có sẵn.

Đó là cho phép một số nhiều IP của bạn chấp nhận kết nối ssh. Tôi đoán bạn đã đặt HearAddress thành IP công cộng hoặc IP bên trong của bộ định tuyến - Tôi đoán nếu bạn đặt nó thành IP cục bộ của máy chủ thì nó sẽ hoạt động tốt. Bất kể, bây giờ bạn đã biết cách hoạt động của ListenAddress và bạn sẽ sẵn sàng nếu bạn phải cấu hình một máy chủ phức tạp hơn. Vui mừng khi biết bạn đã làm việc.


2
+1 Đây là câu trả lời đúng. Ubuntu 16.04 bắt đầu sử dụng systemd. Lệnh trong câu trả lời này là sử dụng systemd để bắt đầu SSH khi khởi động lại. Các luồng khác mà OP liên kết chỉ áp dụng cho khởi động và không phải là systemd hoặc hoàn toàn không áp dụng cho vấn đề của họ.
Sam Gleske

1
Tôi đã thực hiện systemctl list-unit-files tậptytype = service và tôi thấy rằng ssh.service đã được bật. Vì vậy, tôi không nghĩ rằng đó là vấn đề. Nhưng cảm ơn vì lời khuyên về systemctl / systemd. Điều đó cho tôi nhiều nơi để tìm kiếm. Có cách nào để bảo systemd / systemctl đợi cho đến khi DCHP trả về địa chỉ IP không?
Rothrock

Sau khi bật, một tệp mới sẽ được tạo, kiểm tra vớils -l /etc/systemd/system/sshd.service
Timo

2

Vì giải pháp được đề xuất không hiệu quả với tôi, cuối cùng tôi đã thấy rằng cần có thêm lệnh để khởi động SSH khi khởi động:

sudo update-rc.d ssh defaults
sudo systemctl enable ssh.socket

Một số đề cập rằng lệnh này:

sudo systemctl enable ssh.service

nên được thực hiện thay vì lệnh này:

sudo systemctl enable ssh
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.