Câu trả lời:
Có, đôi khi bạn muốn tạo một kết nối nền, im lặng, ví dụ như khi thiết lập một đường hầm (ví dụ: SOCKS proxy). Trong các ví dụ như vậy, bạn muốn quá trình KHÔNG có tty.
Đây là một ví dụ về việc thiết lập chuyển tiếp cổng từ localhost đến một số máy chủ từ xa ...
ssh -l username -fNTL 8073:server:873
Sau khi điều này đã được thiết lập, sau đó bạn có thể rsync đến localhost, thay vì đến máy chủ từ xa, do đó, đường hầm rsync của bạn thông qua ssh
...
rsync --port=8073 -a me@localhost::myStuff /tmp/myStuff/
Bạn sẽ nói điều này nếu rsync đi ra ngoài server
bị chặn, nhưng ssh
không.
Ngoài những điều trên ...
(1) Xử lý thoát tilda khác nhau:
"~." thoát sẽ ngắt kết nối bạn nếu bạn có một pty (-t). Đối với một lệnh chạy dài, bạn có thể muốn ngăn ai đó vô tình tạm dừng quá trình nếu họ gõ ~.
$ ssh hostname.tomontime.com -t ngủ 60
[loại ~. và nó ngắt kết nối]
Kết nối với hostname.tomontime.com đã đóng.
Tên máy chủ $ ssh -T ngủ 60
[Tôi gõ ~. và nó xử lý nó như tổ hợp phím thông thường, mà lệnh ngủ bỏ qua.]
~.
~.
Hãy thử điều tương tự với CTRL-C. Bạn sẽ thấy rằng với -t bạn đang gửi CTRL-C đến "giấc ngủ". Với -T bạn đang gửi CTRL-C đến chương trình ssh đang chạy trên máy của bạn. Có thể đôi khi điều này tạo ra sự khác biệt (tức là chương trình xử lý INT khác với HUP)
(2) Bạn chỉ muốn giảm thiểu hoạt động kết nối mạng hoặc pty.
Khi cố gắng khởi động lại một máy hết ptys, bạn không muốn khuyến khích hệ thống cố gắng phân bổ một pty! Điều này cũng giảm thiểu các kết nối mạng sẽ phải đóng (trì hoãn khởi động lại).
Điều này sẽ hoạt động nhanh hơn và đáng tin cậy hơn:
ssh -T khởi động lại tên máy chủ
Điều này có thể có vấn đề:
khởi động lại tên máy chủ ssh -t
ssh -t tạo một thiết bị đầu cuối giả trên máy từ xa. Điều này rất hữu ích nếu bạn đang xâu chuỗi các lệnh ssh thông qua nhiều máy chủ và muốn có một thiết bị đầu cuối thực sự ở phía xa (vì vậy bạn có thể sử dụng 'vi' chẳng hạn).
Bạn có thể KHÔNG muốn '-t' khi tập lệnh đăng nhập hoạt động khác đi nếu có thiết bị đầu cuối. IMHO thực tế không tốt, nhưng tôi đã thấy các trường hợp trong đó tập lệnh đăng nhập kiểm tra TTY trước 1) đặt lời nhắc và 2) mở rộng đường dẫn đến nhiều ứng dụng tương tác.
Trong một trường hợp khác (được đề cập bởi TomOnTime ở trên), tôi thực sự đã gặp phải trường hợp tất cả TTY (ptys) được sử dụng hết. Rõ ràng là một cấu hình sai, nhưng không cần phải nhai một tài nguyên cho một loạt các đường hầm và rsyncs.