Ssh -X ile uzak x sunucusu


12

Kullanarak uzak bir gnome oturumu başlatmaya çalışıyorum: ssh -X username@192.168.1.107 gnome-session

Hem istemci hem de sunucu Ubuntu sürüm 12.04'tür

Aşağıdakileri alıyorum (ve çok fazla şey olmaz) ...

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

Uzak makinenin ekranında neler olduğunu değiştirmeden uzaktan medya sunucusu / oynatıcısı olarak kullanılan bir Ubuntu makinesine erişmek istedim. Ayrıca ne yapabileceğini görmek için sadece bu şeylerle oynamak istedim. :-)
benlad

1
Oynamak istiyorsanız, bir komut satırından temel ssh'yi kullanmak için, anahtar oluşturma ve uzak ana bilgisayara kopyalama da dahil olmak üzere bazı ipuçlarıyla bir cevap girdim. Ssh kullanmayı öğrendikten sonra, bunu kullanarak ne kadar yapılabileceğine şaşırabilirsiniz.
Marty Fried

Yanıtlar:


12

Yapmaya çalıştığınız şeyin, yerel makinenizde görüntülenen tam bir uzaktan Gnome oturumu başlatmak olduğunu varsayıyorum. X sunucusu ekranınızı kontrol eden bir yerel oturum yöneticiniz zaten olduğu için bu başarısız olur.

Seçenekleriniz:

  1. Tek tek uzak uygulamaları kullanarak ssh -X user@192.168.1.107 xclock

  2. Uzak makinede XDMCP'nin etkin olduğu varsayılarak ...

    2a. Xnest -query 192.168.1.107 -geometry 1024x768 :1Yerel bir pencerede uzaktan oturum açma oturumu başlatmak için kullanın .

    2b. Kullanmaktan Xephyr :1 -screen 1024x768 -query 192.168.1.107daha iyi bir X sunucusu kullanınXnest

  3. Ayrıca uzak makinede XDMCP olduğunu varsayarsak, yerel makinenizi başlangıçta standart karşılayıcı yerine XDMCP seçicisini kullanacak şekilde yapılandırın.

XDMCP'yi etkinleştirmek,

[xdmcp]
Enable=true

içinde /etc/gdm/custom.confyeniden başlatmayı ve gdmya yeniden (Çalıştırdığınız varsayarak gdm).

Yalnızca birkaç uygulamayı uzaktan çalıştırmak istiyorsanız, seçenek 1 en basit olanıdır ve diğerlerinin hiçbirinin yapmadığı SSH şifreli trafiği kullanmaya devam eder (bu nedenle en iyi şekilde yalnızca güvenilir bir yerel ağda kullanılır).

Daha karmaşık bir şeye ihtiyacınız varsa, 2b (Xephyr) daha iyi olabilir, ancak genellikle sadece ssh -X ... &birden fazla uzak uygulamanın yeterli olması için kullanıyorum .

Her şeyi uzaktan yapıyorsanız, yani yerel makine sadece bir görüntüleme sunucusudur ve hiçbir şey yapmazsa, standart giriş yerine XDMCP seçicisini başlatarak 3. seçeneği kullanmaya bakmanız gerekir.


Not: As açıklamalarda belirtildiği, hem Xnestve XephyrX sunucusu protokolü işlemek uygulamalardır ve bir pencereye tüm oturumu koydu. Xnestyerel X sunucusu tarafından sağlanan işlevleri kullanırken Xephyrsunucu protokolünün çok daha fazlasını yönetir, böylece daha sağlamdır. Ortalama bir kullanıcı bunları kullanmadığı için varsayılan olarak yüklenmeyebilirler.


PPS: Biraz düşündükten sonra, bir oturumu Xephyrveya Xnestoturumu nasıl şifreleyeceğiniz açıktır ...

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

1
Xnest / Xephyr'in ne yaptığını ve nedenini belirtmek için yararlı olabilir, çünkü varsayılan olarak yüklenmedikleri için, sanmıyorum. Xdmcp kullanmaya hiç ihtiyaç duymadım, bu yüzden kendim hakkında hiçbir fikrim yok. ssh -YBir terminalden basit kullanıyorum , sonra oradan ihtiyacım olanı çalıştırıyorum.
Marty Fried

@MartyFried: Her ikisi de bir pencerede çalışabilen X sunucuları gibi görünüyor. Kullanıcı bir oturumu / ekranı tümüyle X iletmek istiyor gibi görünüyor. Şahsen sadece mevcut X sunucusunda yeni bir ekran oluşturan ve kendimi baş ağrımdan kurtaran VNC'yi kullanırım.
ish

@izx: Geçmişte Windows sistemleri için VNC kullandım, ancak iki Ubuntu sistemiyle, genellikle yerleşik ssh'yi severim, ancak bazen GUI uygulamalarını çalıştırırken kafam karışıyor, çünkü yerel ve uzak uygulamaları ayırt etmek zor. Ama yaptığım şey için (çoğunlukla bir sunucudan düzenleme veya yönetim), en iyi şekilde çalışıyor gibi görünüyor.
Marty Fried

1
@MartyFried VNC'nin dezavantajı, uzak makinenin ekranını kontrol etmenizdir. Dolayısıyla, bir kullanıcının uzaktan bağlı başka bir kullanıcıyla o ekranda oturum açmasını sağlayamazsınız. XDMCP çözümleri, 2 veya daha fazla kullanıcının aynı makineyi kullanmasına izin veren tamamen ayrı oturumlar oluşturur.
StarNamer

2b solüsyonunuz bir tedavi yaptı. Ssh sürümünü denedim, ama ssh tuşları ile ilgili bir sorun vardı. Mesaj buraya gönderilemeyecek kadar uzun. Şimdilik işe yarayan yöntemi kullanacağım.
benlad

0

Standart ssh'ı bir terminalden kullanmayı öğrenmek istediğinizde, ssh tuşlarını kullanmada sorun yaşadığınız için size hızlı bir özet vereceğim diye düşündüm. Avantajı, daha evrensel ve çok esnek olmasıdır.

Anahtarı yalnızca bir kez girmeniz gerektiğinden, daha güvenli, bazen gerekli ve daha kullanışlı olan ssh anahtarlarını kullanmak için, bunu herhangi bir uzak ssh sunucusu için bir kez yapmanız gerekir:

anahtar üret (gerekirse rsa yerine dsa kullanabilir)

ssh-keygen -t rsa    

anahtarı uzak ana bilgisayara aktarın

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

standart bağlantı noktası 22 değilse, şunu kullanın: Bağımsız değişkenler için tırnak işaretleri yazın

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

Dsa kullanıyorsanız, biraz farklı bir komut vardır, -i <homedirectory>/.ssh/id_dsa

Bundan sonra bir yerde, normal giriş şifrenizden ayrı bir şifre girmeniz gerekecektir. Bir süre oldu ve tam diziyi unuttum, ama açık olmalı. Ardından, ilk kez bağlandığınızda, bir kez bu şifreyi girmeniz istenir. Aynı giriş adını kullanıyorum, bu yüzden kullanıcı adını girmem gerekmiyor (uzak kullanıcı adıyla aynı olduğu varsayılıyor). Ayrıca, lan sunucuları için, IP adresi yerine ".local" girebilirsiniz, inanıyorum (benim için çalışıyor).

Sshfs kullanarak uzak bir dosya sistemi bile kurabilirsiniz (sshfs'nin yüklü olduğu varsayılarak); local-mount-directory yerine bir dizin yolu yazın:

sshfs remote-host: local-mount-directory

(kullanarak bağlantısını kes fusermount -u local-mount-directory)

Yerel bağlama dizininden çıkarsanız, varsayılan olarak ana dizininizi kullanacağını düşünüyorum. '

Dosyaları kopyalamak scp ile yapılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.