SSH가있는 원격 X 서버 -X


12

다음을 사용하여 원격 그놈 세션을 시작하려고합니다. ssh -X username@192.168.1.107 gnome-session

클라이언트와 서버 모두 Ubuntu 버전 12.04입니다.

나는 다음을 얻습니다 (많은 일이 아닙니다) ...

GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
GNOME_KEYRING_PID=3573
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
SSH_AUTH_SOCK=/tmp/keyring-3aeNAh/ssh
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
SSH_AUTH_SOCK=/tmp/keyring-3aeNAh/ssh

(gnome-settings-daemon:3572): color-plugin-WARNING **: failed to get contents of /sys/class/dmi/id/board_version: Failed to open file '/sys/class/dmi/id/board_version': No such file or directory

** (gnome-settings-daemon:3572): WARNING **: You can only run one xsettings manager at a time; exiting

** (gnome-settings-daemon:3572): WARNING **: Unable to start xsettings manager: Could not initialize xsettings manager.
compiz (core) - Error: Screen 0 on display "localhost:10.0" already has a window manager; try using the --replace option to replace the current window manager.
Initializing nautilus-gdu extension
Created new window in existing browser session.
** Message: applet now removed from the notification area
** Message: using fallback from indicator to GtkStatusIcon

(gnome-settings-daemon:3572): keyboard-plugin-WARNING **: Failed to set the keyboard layouts: GDBus.Error:org.freedesktop.Accounts.Error.PermissionDenied: Not authorized

** (gnome-settings-daemon:3572): WARNING **: Failed to connect context: Connection refused

(gnome-settings-daemon:3572): clipboard-plugin-WARNING **: Clipboard manager is already running.

(gnome-settings-daemon:3572): color-plugin-WARNING **: failed to create device: GDBus.Error:org.freedesktop.ColorManager.Failed: failed to obtain org.freedesktop.color-manager.create-device auth

(gnome-settings-daemon:3572): color-plugin-WARNING **: GDBus.Error:org.freedesktop.ColorManager.Failed: failed to obtain org.freedesktop.color-manager.create-profile auth

(gnome-settings-daemon:3572): color-plugin-WARNING **: no xrandr-Samsung Electric Company-SAMSUNG device found: Failed to find output xrandr-Samsung Electric Company-SAMSUNG
Shutting down nautilus-gdu extension

** (gnome-settings-daemon:3572): WARNING **: Failed to connect context: Connection refused
Connection failure: Connection refused
pa_context_connect() failed: Connection refused

원격 컴퓨터의 디스플레이에서 일어나는 일을 변경하지 않고 미디어 서버 / 플레이어로 사용되는 Ubuntu 컴퓨터에 원격으로 액세스하고 싶었습니다. 또한 나는 그것이 할 수있는 것을보기 위해이 물건을 가지고 놀고 싶었습니다. :-)
benlad

1
놀고 싶다면 키를 생성하고 원격 호스트에 복사하는 것을 포함하여 명령 줄에서 기본 ssh를 사용하는 방법에 대한 팁을 입력했습니다. ssh 사용법을 배운 후에는 그것을 사용하여 얼마나 많은 일을 할 수 있는지에 놀랄 수 있습니다.
마티 프라이드

답변:


12

나는 당신이하려는 것은 로컬 컴퓨터에서 완전한 원격 Gnome 세션을 표시하는 것이라고 가정합니다. X 서버 디스플레이를 제어하는 ​​로컬 세션 관리자가 이미 있기 때문에 실패합니다.

옵션은 다음과 같습니다.

  1. 다음을 사용하여 개별 원격 애플리케이션을 시작하십시오. ssh -X user@192.168.1.107 xclock

  2. 원격 시스템에서 XDMCP가 활성화되었다고 가정하면 ...

    2a. Xnest -query 192.168.1.107 -geometry 1024x768 :1로컬 창에서 원격 로그인 세션을 시작하는 데 사용 합니다.

    2b. Xephyr :1 -screen 1024x768 -query 192.168.1.107보다 나은 X 서버를 사용하십시오.Xnest

  3. 또한 원격 시스템의 XDMCP를 가정 할 때 시작시 표준 인사말 대신 XDMCP 선택기를 사용하도록 로컬 시스템을 구성하십시오.

XDMCP 활성화는 단순히 다음과 같은 경우입니다.

[xdmcp]
Enable=true

에서 /etc/gdm/custom.conf다시 시작하고 gdm또는 재부팅 (실행중인 가정 gdm).

원격으로 몇 개의 응용 프로그램 만 실행하려는 경우 옵션 1이 가장 간단하고 다른 방법으로는 사용하지 않는 SSH 암호화 트래픽을 계속 사용하므로 신뢰할 수있는 로컬 네트워크에서만 사용하는 것이 가장 좋습니다.

더 복잡한 무언가가 필요하다면 2b (Xephyr)가 더 나을 수도 있지만 일반적으로 ssh -X ... &여러 원격 응용 프로그램에 적합 하다는 것을 알았습니다 .

원격으로 모든 작업을 수행하는 경우 (예 : 로컬 시스템은 디스플레이 서버 일 뿐이고 자체 작업을 수행하지 않는 경우) 표준 로그인 대신 XDMCP 선택기를 시작하여 옵션 3을 사용해야합니다.


PS :로는 코멘트에 언급, 모두 XnestXephyrX 서버 프로토콜을 처리하는 응용 프로그램이며 창에 전체 세션을 넣어. Xnest로컬 X 서버가 제공하는 기능을 사용하면서 Xephyr훨씬 더 많은 서버 프로토콜 자체를 처리하므로 더욱 강력합니다. 일반 사용자가 사용하지 않기 때문에 기본적으로 설치되지 않을 수 있습니다.


PPS : 조금만 생각하면 Xephyr또는 Xnest세션 을 암호화하는 방법이 분명합니다 ...

ssh -X username@192.168.1.107 Xephyr :1 -query localhost -screen 1280x1024

1
Xnest / Xephyr가 무엇을하는지, 왜 기본적으로 설치되지 않았기 때문에 왜 그렇게 생각하지 않는지를 나타내는 데 유용 할 수 있습니다. xdmcp를 사용할 필요가 없었으므로 나 자신도 모른다. ssh -Y터미널에서 간단하게 사용하고 거기서 필요한 것을 실행합니다.
Marty Fried

@MartyFried : 둘 다 창에서 실행할 수있는 X 서버 인 것 같습니다. 사용자가 전체 세션 / 디스플레이를 X 포워드하려는 것처럼 보입니다. 개인적으로 VNC를 사용하면 기존 X 서버에서 새 디스플레이를 만들고 두통을 피할 수 있습니다.
ish

@izx : 과거에는 Windows 시스템에서 VNC를 사용했지만 두 개의 Ubuntu 시스템에서는 일반적으로 내장 ssh를 좋아하지만 GUI 응용 프로그램을 실행할 때 로컬 응용 프로그램과 원격 응용 프로그램을 구분하기가 어려워 때로는 혼란 스럽습니다. 그러나 내가하는 일 (주로 서버에서 편집하거나 서버를 관리하는 경우)이 가장 잘 작동하는 것 같습니다.
마티 프라이드

1
@MartyFried VNC의 단점은 단순히 원격 컴퓨터의 디스플레이를 제어한다는 것입니다. 따라서 한 명의 사용자가 다른 사용자가 원격으로 연결된 디스플레이에 로그인 할 수 없습니다. XDMCP 솔루션은 둘 이상의 사용자가 동일한 시스템을 사용할 수 있도록 완전히 별도의 세션을 구성합니다.
StarNamer

귀하의 2b 솔루션은 대단했습니다. ssh 버전을 시도했지만 ssh 키에 대한 문제가있었습니다. 메시지가 너무 길어서 여기에 게시 할 수 없습니다. 지금은 효과가있는 방법을 사용하겠습니다.
benlad

0

터미널에서 표준 ssh를 사용하는 법을 배우고 싶다면 ssh 키를 사용하는 데 문제가 있기 때문에 빠른 런 다운을 줄 것이라고 생각했습니다. 장점은 더 보편적이고 매우 유연하다는 것입니다.

키를 한 번만 입력하면되므로보다 안전하고 때로는 필요하며 더 편리한 ssh 키를 사용하려면 원격 ssh 서버에 대해 한 번만 수행해야합니다.

키 생성 (필요한 경우 rsa 대신 dsa를 사용할 수 있음)

ssh-keygen -t rsa    

키를 원격 호스트로 전송

ssh-copy-id <username>@<host>

표준 포트 22가 아닌 경우 다음을 사용하십시오.

ssh-copy-id "<username>@<host> -p <port_nr>"

dsa를 사용하는 경우 약간 다른 명령이 있으며 -i <homedirectory>/.ssh/id_dsa

이 후 어딘가에, 일반 로그인 비밀번호와 다른 비밀번호를 입력해야합니다. 오랜 시간이었고 정확한 순서를 잊어 버렸지 만 분명해야합니다. 그런 다음 처음 연결할 때이 비밀번호를 한 번 묻는 메시지가 표시됩니다. 동일한 로그인 이름을 사용하므로 사용자 이름을 입력 할 필요가 없습니다 (원격 사용자 이름과 동일하다고 가정). 또한 LAN에있는 서버의 경우 IP 주소 대신 ".local"을 입력 할 수 있습니다.

sshfs를 사용하여 원격 파일 시스템을 마운트 할 수도 있습니다 (sshfs가 설치되어 있다고 가정). local-mount-directory 대신 디렉토리 경로를 사용하십시오.

sshfs remote-host: local-mount-directory

(를 사용하여 마운트 해제 fusermount -u local-mount-directory)

local-mount-directory를 사용하지 않으면 기본적으로 홈 디렉토리를 사용한다고 생각합니다. `

파일 복사는 scp를 사용하여 수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.