X11 전달 설정

X11 전달 설정

SSH 세션을 통해 Mac에서 일부 스위치 구성을 잘라내어 붙여넣으려고 합니다. 버퍼 크기를 설정한 후 파괴되기 시작하는 것 같습니다. 물론 잘라내기-붙여넣기 버퍼는 다른 프로그램에서 잘 잘라서 붙여넣을 수 있을 만큼 충분히 큽니다(동일한 SSH 세션에 대한 크롬 터미널 에뮬레이터도 충분히 재미있습니다). MacOS에서 터미널의 잘라내기-붙여넣기 버퍼를 늘릴 수 있는 방법이 있습니까? 아니면 바로 가기-붙여넣기 문제가 발생합니까?

편집하다: 그래서 연결된 OS에서 커널 tty 드라이버로 많은 디버깅을 수행한 후 근본 원인이 작은 버퍼(1k)만 있는 특정 tty 구현이라는 것을 발견했습니다. 따라서 더 큰 것을 붙여넣으면 해당 버퍼를 초과하여 위에서 언급한 문제가 발생합니다. Chrome 터미널 에뮬레이터를 사용하면 자체 버퍼가 있는 것처럼 보이고 프롬프트를 기다렸다가 한 줄씩 pty로 보냅니다.

답변1

SSH 세션에 붙여넣을 수 있는 데이터 양을 늘리는 솔루션은 없지만 귀하에게 적합한 해결 방법은 있습니다. 해결 방법은 X11이 OS X 클립보드를 전달하고 이를 X 서버 클립보드와 공유하는 것입니다.

X11 전달 설정

원격 서버에서 X11 전달을 설정하려면 /etc/ssh/sshd_config파일을 편집하고 행을 변경 해야 합니다.

#X11Forwarding no

도착하다

X11Forwarding yes

당신은해야합니다재시작파일 업데이트 /etc/ssh/sshd_config후 SSH 데몬 . 이제 xauth귀하의 플랫폼에 적합한 명령을 사용하여 원격 서버에 설치 해야 합니다.

sudo pacman -S xorg-xauth # Arch-Linux
sudo apt-get install xauth # Debian/Ubuntu/etc.
sudo yum install xauth # RHEL/CentOS/Fedora/etc.

-X그런 다음 , 또는 - 옵션을 사용하여 Y서버에 연결할 수 있습니다 .

  • -XX11 전달이 활성화됩니다.
  • -Y신뢰할 수 있는 X11 전달이 활성화됩니다.

OpenSSH 버전에 따라 이 단계가 필요할 수도 있고 필요하지 않을 수도 있습니다.OpenSSH에는 다음 메시지를 발생시키는 알려진 버그가 있습니다.

채널 0에서 X11 전달 요청이 실패했습니다.

X11 포워딩을 이용하여 원격 서버에 접속을 시도하는 경우. 해결 방법은 파일을 편집 /etc/ssh/sshd_config하고 줄을 변경하는 것 입니다.

#X11UseLocalhost yes

도착하다

X11UseLocalhost no

이제 X11 전달이 활성화된 원격 서버에 성공적으로 연결할 수 있습니다.

OS X 및 X 서버 클립보드 공유

OS X 키보드를 X 서버와 공유하려면 이 파일 ~/Library/Preferences/org.x.X11.plist또는 ~/Library/Preferences/org.macosforge.xquartz.X11.plist. ls ~/Library/Preferences/ | grep X11편집해야 할 파일을 결정하는 데 사용할 수 있습니다 . 이를 위해 5개의 부울 키를 추가해야 합니다.

sync_clipboard_to_pasteboard
sync_pasteboard
sync_pasteboard_to_clipboard
sync_pasteboard_to_primary
sync_primary_on_select

아마도 이를 추가하는 가장 쉬운 방법은 터미널 명령을 사용하는 것입니다.

defaults write org.macosforge.xquartz.X11 sync_clipboard_to_pasteboard -boolean true
defaults write org.macosforge.xquartz.X11 sync_pasteboard -boolean true
defaults write org.macosforge.xquartz.X11 sync_pasteboard_to_clipboard -boolean true
defaults write org.macosforge.xquartz.X11 sync_pasteboard_to_primary -boolean true
defaults write org.macosforge.xquartz.X11 sync_primary_on_select -boolean true

org.macosforge.xquartz.X11다음 으로 교체org.x.X11. 이렇게 변경한 후에는 X 서버도 다시 시작해야 합니다. SSH 세션에서 로그아웃하고 도크에서 애플리케이션을 종료하면 충분합니다.

또 있는 것 같다XQuartz의 오류OS X 최신 버전에서 사용 가능하며, xclockOS X 및 X 서버 클립보드를 공유하기 전에 OS X 터미널에서 실행해야 합니다.

복사 및 붙여 넣기

이제 OS X 클립보드와 X 서버 클립보드 간에 복사하여 붙여넣을 수 있는 모든 설정이 완료되었습니다. 마지막으로 할 일은 xclip원격 서버에 설치하는 것입니다.복사 및 붙여 넣기당신이 할 수 있는 일은 무엇이든 하세요.

복사 및 붙여넣기를 초기화하는 데 필요한 순서는 먼저 SSH를 통해 원격 서버에 연결하는 것입니다.

$ ssh -X [user@]hostname

그런 다음 다른 터미널 창에서 다음을 실행하십시오.

$ xclock
^C

^CCTRL+C를 나타냅니다 . 또는 CMD+C를 사용하여 OS X에서 복사 pbcopy하고 .paste 를 사용하여 원격 서버에 붙여넣습니다 xclip.

  • xclip -o클립보드의 내용을 인쇄합니다 stdout.
  • xclip -istdin클립보드에서 읽습니다.

관련 정보