왜 tmux 및 vim 인쇄 쓰레기 내 SSH 래퍼 스크립트를 사용해야 할까요?

0

질문

내가 쓴 SSH 래퍼는 스크립트는 로컬라인 편집합니다. 그것은 마찬가지로 호출되 SSH. 예를 들어: python3 sshwrapper.py [email protected] -CX. 문제는 연결할 때 사용하여 원격 컴퓨터 이 스크립트 사용 vimtmux 거기에,어떤 쓰레기가 인쇄됩니다. 이 문제는 특정하지 않습 SSH,이후 문제는 나타날 때 나는 이 스크립트를 사용하여 포장 bashssh.

예제:

  • 를 시작한 후에 tmux일부는 쓰레기가 인쇄됩니다 bash 프롬프트

    abc@me:~$ ^[[?65;1;9c

  • 열 때 새로운 파일 Vim 에서 사용 vim mynewfile.txt이에 나타나는 첫 번째 줄:

    ^[[2;2R^[[>65;6003;1c^[]10;rgb:0000/0000/0000^G^[]11;rgb:ffff/ffff/dddd^G

어떻게 수정하는 문제입니까?

이것은 스크립트에서 질문:

import os
import pty
import select
import signal
import subprocess
import sys

master_fd, slave_fd = pty.openpty()
process = subprocess.Popen(['ssh'] + sys.argv[1:],
                           stdin=slave_fd,
                           stdout=slave_fd,
                           stderr=subprocess.STDOUT,
                           # Important for Ctrl-c in the remote terminal.
                           preexec_fn=os.setsid)

def sigint_handler(_signum, _frame):
    os.write(master_fd, b'\03')  # Send Ctrl-c.
signal.signal(signal.SIGINT, sigint_handler)

def sigtstp_handler(_signum, _frame):
    os.write(master_fd, b'\x1A')  # Send Ctrl-z.
signal.signal(signal.SIGTSTP, sigtstp_handler)

def sigchld_handler(_signum, _frame):
    process.wait()
    sys.exit(process.returncode)
signal.signal(signal.SIGCHLD, sigchld_handler)

while process.poll() is None:
    # Block until there is something to read or write.
    r, w, e = select.select([sys.stdin, master_fd], [], [])
    if sys.stdin in r:
        # Write to SSH.
        user_input = os.read(sys.stdin.fileno(), 4096)
        if not user_input:
            os.write(master_fd, b'\04')  # Send Ctrl-d.
        else:
            os.write(master_fd, user_input)
    if master_fd in r:
        # Read from SSH.
        data = os.read(master_fd, 4096)
        sys.stdout.write(data.decode())
        sys.stdout.flush()

내가 사용하는 파이썬 3.8.10 우분투에서 20.04 에는 로컬 컴퓨터 및 원격 컴퓨터입니다. 이 교육은 프로젝트,그래서 내가 쓰는 프로그램을 사용하는 파이썬 표준 라이브러리만 있습니다.

linux pty python termios
2021-11-24 05:56:26
3
0

나쁜 해킹 시도할 수 있습니다. 후 ssh 기계로 제거하려고 환경 변수 LS_COLORS

export LS_COLORS=none

이러한 변화는 계속됩니다.

2021-11-26 07:23:48

export LS_COLORS=none 에 효과가 없는 상황이다.
Flux

을 시도했다 pypi.org/project/termcolor
gettinggud

이 교육은 프로젝트,그래서 내가 쓰는 프로그램을 사용하는 파이썬 표준 라이브러리만 있습니다.
Flux

이 경우에는 모든 내가 제안할 수 있는 추가 필터를 표시/제거 색상: 링크를 링크. 좋은 프로젝트 btw!
gettinggud

무엇이 문제의 근본적인 원인?
Flux
0

에서 당신의 bashrc:

alias tmux="TERM=screen-256color-bce tmux"

에.tmux.conf:

set -g default-terminal "xterm-256color"

2021-11-30 14:19:56

쓰레기 여전히 나타나는 모두에 대한 tmux 및 vim.
Flux
0

시에서 스크립트를 실행하는 다른 터미널 응용 프로그램(바람직하게 설정하면 기본값)고 당신은 여전히 문제입니다.

2021-12-03 06:15:39

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................