xsel: 디스플레이를 열 수 없습니다: (null)

xsel: 디스플레이를 열 수 없습니다: (null)

xsel을 사용하여 긴 파일을 클립보드에 복사하고 싶습니다. 로컬 컴퓨터에서 다음을 입력합니다.

cat /usr/bin/mysql_secure_installation|xsel -b

mysql_secure_installation로컬 운영 체제에 있는 파일이 클립보드에 복사되었습니다.

이제 ssh 명령을 사용하여 내 vps에 로그인하고 다음을 입력하십시오.

DISPLAY=:0 cat /usr/bin/mysql_secure_installation|xsel -b

오류 메시지가 나타났습니다:

xsel: Can't open display: (null)
: Inappropriate ioctl for device

원격 파일을 얻는 올바른 방법은 scp다음 명령이라는 것을 알고 있습니다.

scp -P port username@tohostname:/remotefile /newlocalfile

내 vps에 로그인한 후 원격 컴퓨터에서 로컬 컴퓨터의 클립보드로 파일 내용을 클립보드로 복사하는 방법을 알고 싶습니다.

같은 오류:

DISPLAY=:0 xsel -b <  /usr/bin/mysql_secure_installation
xsel: Can't open display: (null)
: Connection refused

답변1

ssh연결을 시작하세요

ssh -X yourserver

그 다음에아니요변수를 직접 변경하십시오 DISPLAY. 이는 (다른 X11 클라이언트와 마찬가지로) 클립보드를 포함하여 로컬 컴퓨터의 디스플레이를 사용할 수 ssh있도록 자동으로 설정되어야 합니다 . xsel이것은 ... 불리운다X11 전달.

DISPLAY=:0세션에서 수동으로 설정하면 해당 서버가 실행 중인 경우 해당 원격 서버의 디스플레이를 사용하라는 ssh메시지가 표시됩니다 .xsel

답변2

다른 답변에서는 원하는 O(결과)를 얻기 위해 X 세션을 전달하는 방법을 보여주었습니다. 그러나 이는 이미 지적한 바와 같이 매우 안전하지도 않고 성능도 좋지 않으며 종종 추가 설정이 필요합니다.

SCROE 모델에서 동일한 E(효과)를 달성하는 가장 좋은 방법은 원시 데이터 바이트를 호스트로 스트리밍하고 이를 클립보드에 로컬로 푸시하는 것입니다. 거의 다 왔습니다. 파이프가 있고 scp가 있지만 scp가 거의 옳습니다.

ssh -p port username@tohostname cat /usr/bin/mysql_secure_installation | xsel -ib

파이프는 cat명령의 표준 출력을 보장합니다.외딴호스트는 궁극적으로 xsel명령의 표준 입력 역할을 합니다.현지의주인. (이것도 추가하겠습니다 -i. 작동 모드가 명시적으로 지정된 경우 xsel을 사용하는 것이 가장 안전합니다.)

답변3

자일스 경처럼여기서 말해요:

  • 고객연결해야 합니다 ssh -X(세션별로 ~/.ssh/config항상 사용).
  • 서비스 터미널X11Forwarding yes( /etc/ssh/sshd_config주의 ) 가 있어야 합니다 d. 또한 xauth및 등의 일부 소프트웨어 패키지가 libxdmcp6기본적으로 설치됩니다. sudo systemctl restart sshd.service변경 사항을 적용하는 것을 잊지 마십시오 ( sudo sshd -t오류가 있는지 확인하려면 ( ) 이전에 테스트 모드를 사용하십시오).

보안상의 이유로, 항상 사용하도록 허용하지 않고 일반적으로 매우 신뢰할 수 있는 서버에서만 사용합니다.

다른 소스

관련 정보