ssh từ màn hình dẫn đến lỗi thiết bị đầu cuối không xác định


9

Tôi đang cố gắng tạo kết nối ssh (thông qua lsh) từ máy chủ Ubuntu này sang máy chủ Ubuntu khác trong màn hình. Nếu tôi cố chạy mcngay sau đó tôi sẽ gặp lỗi sau:

Unknown terminal: screen-256color-s
Check the TERM environment variable.
Also make sure that the terminal is defined in the terminfo database.
Alternatively, set the TERMCAP environment variable to the desired
termcap entry.

Câu hỏi là - ai gây ra thất bại này? Có phải là máy chủ địa phương? Xa xôi? một số gói bị thiếu (mà?), một cái gì đó không được thực hiện bởi lsh-server? hay khách hàng?

Nói rõ hơn - Tôi không muốn các cách giải quyết như "TERM = xterm mc", tôi muốn có thể sử dụng các chủ đề trực quan hỗ trợ 256 màu trên bảng điều khiển (từ xa).

Câu trả lời:


7

Chỉ cần đặt một HẠN khác, ví dụ:

TERM="rxvt"

hoặc là

TERM="xterm"

hoặc là

TERM="vt102"

Có lẽ một sự export TERMgiúp đỡ quá.

Các TERMbiến được sử dụng bởi cursestermcapcác chương trình, chẳng hạn như mchay dialog, để đọc các mã điều khiển thiết bị đầu cuối từ terminfo / termcap cơ sở dữ liệu, nơi mà các lệnh được thực thi, vì vậy trong trường hợp của bạn trong hệ thống từ xa.

Để hỗ trợ kiểu TERM "screen-256color-s", loại thiết bị đầu cuối này phải được cài đặt trong cơ sở dữ liệu.

Là một điểm khởi đầu tốt đọc man 5 terminfo.


6

Cuối cùng, tôi đã xoay sở để tìm ra gói "hiển nhiên" cung cấp màn hình 256 màu (phải được cài đặt trên máy từ xa):

sudo apt install ncurses-term

Đã khắc phục sự cố cho tôi: 256 màu đẹp và không cần cách giải quyết xấu với các biến môi trường. Hoan hô! :)


không hoạt động với tôi trên Ubuntu 12.04 cũ. ncurses-term được cài đặt tốt nhưng tôi vẫn nhận được 'screen.xterm-256color': loại thiết bị đầu cuối không xác định.
Calimo

4

GNU screenđang thiết lập $TERMcục bộ và sshchuyển giá trị đó sang phía xa. Có một vài điều bạn có thể làm.

  • Phát hiện screen-256-color-sở phía xa và thiết lập một cách lành mạnh hơn. Từ đó bạn có thể có case $TERM in screen-256*) TERM=screen;; esac.
  • Từ phía địa phương, đã screenđặt thiết bị đầu cuối. Trong ~/.screenrctập tin của bạn có : term screen.
  • Nếu bạn có một screenlệnh để mở sshcuộc gọi, sau đó thêm một -Ttùy chọn:screen -T screen ssh user@host
  • Trong địa phương của bạn ~/.bashrc, đặt thiết bị đầu cuối nếu nó phát hiện thiết bị không tương thích tương tự với thiết bị phía xa ở trên.
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.