Đường hầm SSH trong nền


17

Tôi có một quy trình mong muốn kết nối đường hầm ssh thực thi chính xác và tôi đã sử dụng lệnh sau:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -N &

Tôi đã chạy nó thành công được 8 tháng, gần đây nhà cung cấp dịch vụ lưu trữ của chúng tôi đã phải thay đổi phần cứng để cập nhật máy và nâng cấp máy của chúng tôi với kernel mới cho Ubuntu. Nó đã đi từ 4.8.3-x86_64-linode76 đến 4.8.6-x86_64-linode78.

Sau một loạt các sự cố nổ súng, chúng tôi đã phải cập nhật lệnh này:

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -fN

Khi nghiên cứu tài liệu ssh tham số -f

Yêu cầu ssh đi đến nền ngay trước khi thực hiện lệnh. Điều này hữu ích nếu ssh sẽ yêu cầu mật khẩu hoặc cụm mật khẩu, nhưng người dùng muốn nó ở chế độ nền. Điều này ngụ ý -n. Cách được đề xuất để bắt đầu các chương trình X11 tại một trang web từ xa là với một cái gì đó như ssh -f host xterm.

Khi nghiên cứu lệnh bash cho "&"

Đặt một quá trình vào nền (xem đa nhiệm trong "Sử dụng trung gian> Hệ điều hành UNIX").

Về cơ bản có sự khác biệt nào trong 2 lệnh này không?

Câu trả lời:


22

Có, có. ssh &chạy sshtrong nền ngay từ đầu. ssh -fbắt đầu sshở nền trước, cho phép nó nhắc mật khẩu, v.v. và chỉ sau đó mới sshđặt chính nó vào nền trước khi thực hiện lệnh được yêu cầu.


Bạn có gợi ý nào về lý do tại sao với máy chủ mới tôi sẽ buộc phải sử dụng ssh -f thay vì ssh &. Thêm vào đó, có vẻ như ssh -f là một cách tiếp cận tốt hơn, bạn có đồng ý với điều đó không?
Develop4fun2011

Có lẽ hệ thống mới có một máy khách ssh mới hơn (hoặc chỉ khác nhau)?
AlexP
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.