SSH를 통해 Linux에서 X11 포워딩을 설정하는 방법

X11 포워딩을 사용하면 원격 컴퓨터에서 그래픽 Linux 애플리케이션을 실행하고 SSH를 통해 로컬 데스크톱에 해당 창을 표시할 수 있습니다. 설정하려면 원격 SSH 서버에서 포워딩을 활성화하고, 서버에 xauthX11 포트가 있는지 확인하고, 로컬 데스크톱에 X 디스플레이가 있는지 확인한 다음, SSH로 연결합니다 ssh -X. 이 기능은 개별 애플리케이션 창을 포워딩하는 것이며, 전체 원격 데스크톱 세션을 생성하는 것은 아닙니다.

설치하기 전에 필요한 사항

SSH 명령어를 입력하는 컴퓨터가 클라이언트입니다 . 클라이언트는 OpenSSH 클라이언트와 X 디스플레이가 활성화된 그래픽 데스크톱 세션이 필요합니다. 많은 Linux 데스크톱 환경은 세션이 Wayland를 사용하는 경우 XWayland를 통해 또는 직접 이를 제공합니다. echo "$DISPLAY"로컬 데스크톱에 아무것도 출력되지 않으면 해당 셸에서 SSH가 사용할 디스플레이가 없는 것입니다.

원격 컴퓨터가 서버 입니다 . 이 서버는 OpenSSH 서버와 xauthSSH가 전달된 화면에 사용되는 임시 인증 쿠키를 생성할 수 있도록 하는 유틸리티가 필요합니다. Debian 또는 Ubuntu에서는 `-- install openSSH` 및 `-- install sudo apt updateopenSSH` 명령어를 사용하여 원격 시스템에 설치하십시오 sudo apt install openssh-server xauth. 다른 배포판에서는 패키지 관리자를 사용하여 OpenSSH 서버와 해당 유틸리티를 제공하는 패키지를 설치하십시오 xauth. 설정을 변경하기 전에 일반 SSH 로그인이 정상적으로 작동하는지 확인하십시오.

로컬 시스템에서 발견된 ssh 및 xauth 명령어를 보여주는 Linux 터미널 화면입니다.
로컬 터미널에서 OpenSSH 클라이언트를 실행할 수 있는지 확인하십시오. 원격 서버에도 xauth가 필요합니다.

SSH를 통해 X11 포워딩을 설정합니다.

1. 서버 구성에서 포워딩을 활성화합니다.

원격 컴퓨터에서 관리자 권한이 있는 편집기를 사용하여 서버 구성 파일(일반적으로 )을 편집합니다./etc/ssh/sshd_config

sudoedit /etc/ssh/sshd_config

기존에 활성화된 X11Forwarding설정을 찾아 다음과 같이 변경하십시오.

X11Forwarding yes

설정이 없는 경우, Match블록 앞에 있는 전역 섹션에 추가하십시오. 일부 배포판은 /etc/ssh/sshd_config.d/포함된 파일에서 파일을 로드하기도 합니다. 포함된 파일에서 설정 충돌이 있는지 확인하십시오. Match규칙이나 설정을 통해 DisableForwarding yes특정 계정에 대한 포워딩을 차단할 수도 있습니다. 특별한 호환성 문제가 없는 한 기본값을 유지하십시오 . OpenSSH는 일반적으로 포워딩 프록시를 루프백에 바인딩합니다. 이러한 서버 측 옵션에 대한 자세한 내용은 X11UseLocalhost공식 sshd_config 설명서를 참조하십시오.

X11Forwarding yes 지시문이 활성화된 SSH 서버 구성
서버 설정은 SSH 클라이언트 파일인 ssh_config가 아니라 sshd_config에 있어야 합니다.

2. 구성을 검증하고 SSH를 다시 ​​로드합니다.

데몬을 다시 로드하기 전에 파일의 구문 오류를 확인하고 유효한 전달 값을 확인하십시오.

sudo sshd -t
sudo sshd -T | grep -i '^x11forwarding'

첫 번째 명령은 오류 없이 종료되어야 하며, 두 번째 명령은 종료되어야 합니다 x11forwarding yes. 규칙을 사용하는 경우 MatchOpenSSH 설명서에 설명된 대로 관련 사용자 및 연결에 대한 유효한 구성을 테스트하십시오. SSH 액세스가 중단되지 않도록 재시작하기 전에 오류를 수정하십시오.

배포판에서 사용하는 서비스 이름을 다시 로드하세요. Debian 및 Ubuntu에서는 일반적으로 다음을 사용합니다.

sudo systemctl reload ssh

Fedora 및 RHEL 계열 시스템은 일반적으로 다음을 사용합니다.

sudo systemctl reload sshd

새로 고침이 지원되지 않는 경우, restart동일한 서비스에 대해 다른 방법을 사용하십시오. 현재 세션을 열어둔 상태에서 새 연결을 테스트한 후 닫으십시오. Ubuntu의 OpenSSH 서버 설명서에는 Ubuntu에서 사용되는 서버 파일 및 구성 스니펫에 대한 내용이 나와 있습니다.

3. 로컬 Linux 데스크톱에서 연결합니다.

클라이언트에서 신뢰할 수 없는 X11 포워딩을 다음과 같이 요청합니다 -X.

ssh -X user@server.example.com

예시의 사용자 이름과 호스트를 본인의 것으로 바꾸십시오. SSH 서버가 표준 포트가 아닌 다른 포트에서 수신 대기하는 경우, 포트 번호를 다음과 같이 추가하십시오 -p.

ssh -X -p 2222 user@server.example.com

로그인 후 원격 호스트에 설치된 그래픽 프로그램을 실행하십시오. 빠른 확인을 위해 xclock테스트 애플리케이션이 실행 가능한지 확인하거나, 다른 설치된 GUI 프로그램을 실행해 보십시오. SSH는 원격 세션 DISPLAY값을 자동으로 설정하고 X11 연결을 전달합니다. 따라서 로컬 디스플레이 값을 서버로 복사하거나 수동으로 설정하지 마십시오.

로컬 Linux 터미널에서 `ssh -X` 명령어를 사용하여 원격 호스트에 연결합니다.
이 -X옵션은 SSH 세션이 시작될 때 X11 포워딩을 요청합니다.
리눅스 데스크톱의 SSH 터미널 옆에 원격 xclock 애플리케이션이 표시됩니다.
전달된 GUI 애플리케이션은 SSH 세션이 열린 상태로 유지되는 동안 로컬 데스크톱에 창으로 나타납니다.

보안 및 문제 해결

-X기본값으로 사용됩니다 . 이 -Y옵션은 신뢰할 수 있는 포워딩을 활성화하여 X11 보안 제한을 제거하고 원격 애플리케이션이 로컬 디스플레이에 더 폭넓게 접근할 수 있도록 합니다. 신뢰할 수 있는 서버 및 애플리케이션에서만 사용하십시오. OpenSSH는 X11 포워딩으로 인해 클라이언트 디스플레이가 공격에 노출될 수 있다고 경고합니다. 신뢰할 수 있는 포워딩과 신뢰할 수 없는 포워딩의 차이점에 대해서는 ssh 설명서 및 ssh_config 설명서를 참조하십시오.

  • "X11 포워딩 요청 실패": 서버의 유효 X11Forwarding값을 확인하고, xauth원격 호스트에 설치되어 있는지 확인하고, 제한적인 Match차단 또는 DisableForwarding설정이 있는지 확인하십시오.
  • DISPLAY원격 세션이 비어 있습니다. 연결을 끊고 다시 연결하십시오 ssh -X. 로컬 셸에 그래픽 디스플레이가 실행 중인지, 그리고 방금 구성한 서버에 연결이 제대로 되는지 확인하십시오.
  • 창에 디스플레이를 열 수 없다는 메시지가 표시됩니다. 로컬 데스크톱 세션이 여전히 활성화되어 있는지 확인하십시오. 데스크톱 디스플레이에 액세스할 수 없는 셸은 전달된 창을 표시할 수 없습니다.
  • xclock찾을 수 없음: 테스트 프로그램이 없습니다. 원격 시스템에 이미 설치된 GUI 애플리케이션을 사용해 보세요. 이 메시지만으로는 SSH 포워딩에 문제가 있다고 단정할 수 없습니다.

X11 포워딩은 가끔 원격 도구를 사용할 때는 편리하지만, 화면을 자주 새로 그리는 그래픽 애플리케이션은 지연 시간이 긴 연결에서 속도가 느려질 수 있습니다. 전체 데스크톱 환경이나 그래픽 작업이 많은 경우에는 해당 용도에 맞게 설계된 원격 데스크톱 솔루션을 사용하는 것이 좋습니다.

댓글 남기기

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.

리눅스에 Cisco Packet Tracer를 설치하는 방법

리눅스에 Cisco Packet Tracer를 설치하는 방법

Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.

XFCE 4에서 듀얼 패널을 설정하는 방법

XFCE 4에서 듀얼 패널을 설정하는 방법

각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.