Tôi có thể thay đổi loại thiết bị đầu cuối được sử dụng để đăng nhập thông qua SSH không?


8

Khi tôi đăng nhập vào một số máy chủ cụ thể thông qua SSH (mà tôi không có quyền truy cập của quản trị viên), tôi gặp phải lỗi sau: urxvt-unicode: Unknown terminal type(Tôi cũng không muốn thay đổi loại thiết bị đầu cuối của mình vĩnh viễn). Điều này rất quan trọng vì tùy thuộc vào loại thiết bị đầu cuối, tôi nhận được các màu khác nhau khi đăng nhập.

Có thể thay đổi loại thiết bị đầu cuối chỉ khi đăng nhập qua SSH?

Câu trả lời:


7

Nếu bạn có quyền truy cập root vào hộp từ xa, hãy cài đặt gói ncurses-term. Điều này sẽ cung cấp các rxvt-256colormục terminfo.

Là người dùng không phải root, bạn cũng có thể sao chép các mục terminfo rxvt $HOME/.terminfo/r/vào máy từ xa và xuất TERMINFO=$HOME/.terminfo.

ssh <host> 'mkdir -p .terminfo/r'
scp /usr/share/terminfo/r/rxvt-unicode-256color <host>:~/.terminfo/r/

Tôi không có gì trong đó /usr/share/terminfo/.
Ondra Žižka

4

Sau khi đăng nhập, bạn có thể thực hiện một cái gì đó như:

export TERM=vt100

2

quá trình sshd (từ sshd (8)) sẽ đọc ...

6.   Reads the file ~/.ssh/environment, if it exists, and users are
allowed to change their environment.  See the PermitUserEnvironment 
option in sshd_config(5).

8.   If ~/.ssh/rc exists, runs it; else if /etc/ssh/sshrc exists, 
runs it; otherwise runs xauth.  The “rc” files are given the X11 
authentication protocol and cookie in standard input.  See SSHRC, below.

bạn có thể chỉnh sửa ~/.ssh/rcđể thiết lập giá trị của TERM, vì tệp này được đọc trước hồ sơ của shell.


1

Thường TERMđược truyền từ môi trường địa phương của bạn, không thay đổi, đến môi trường từ xa. Nếu bạn đặt TERMvề phía địa phương khi gọi ssh, điều đó sẽ làm những gì cần thiết.

Chẳng hạn, nếu đầu từ xa có mô tả đầu cuối cho rxvt(nhưng không rxvt-unicode), thì nó sẽ hoạt động đủ tốt cho các phím chức năng, v.v.

Giả sử bash hoặc một số shell tương thích POSIX, bạn có thể thực hiện việc này bằng cách

TERM=rxvt ssh máy chủ từ xa

Làm theo cách đó chỉ ảnh hưởng đến sshlệnh chứ không phải môi trường cục bộ của bạn. Tôi sử dụng tính năng này để xử lý các máy điển hình không có mô tả screen.xterm-new. Tùy thuộc vào máy từ xa, có thể có hoặc không có gói phù hợp có thể được cài đặt cho cơ sở dữ liệu đầu cuối đầy đủ . Một số (như Solaris và FreeBSD) yêu cầu cách giải quyết.

Đọc thêm:

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.