Máy chủ x từ xa với ssh -X


12

Tôi đang cố gắng bắt đầu một phiên gnome từ xa bằng cách sử dụng: ssh -X username@192.168.1.107 gnome-session

Cả máy khách và máy chủ đều là phiên bản Ubuntu 12.04

Tôi nhận được những điều sau đây (và không có nhiều xảy ra) ...

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

Tôi muốn truy cập vào một máy Ubuntu được sử dụng như một máy chủ / trình phát phương tiện từ xa mà không thay đổi những gì xảy ra trên màn hình của máy từ xa. Ngoài ra tôi chỉ muốn chơi xung quanh với những thứ này để xem những gì nó có thể làm. :-)
benlad

1
Nếu bạn muốn chơi xung quanh, tôi đã nhập một câu trả lời với một số mẹo sử dụng ssh cơ bản từ một dòng lệnh, bao gồm tạo khóa và sao chép nó vào máy chủ từ xa. Khi bạn học cách sử dụng ssh, bạn có thể ngạc nhiên về mức độ có thể được thực hiện bằng cách sử dụng nó.
Marty Fried

Câu trả lời:


12

Tôi giả định rằng những gì bạn đang cố gắng làm là bắt đầu một phiên Gnome từ xa hoàn chỉnh hiển thị trên máy cục bộ của bạn. Điều này không thành công vì bạn đã có trình quản lý phiên cục bộ kiểm soát màn hình máy chủ X của bạn.

Lựa chọn của bạn là:

  1. Chỉ cần khởi động các ứng dụng từ xa riêng lẻ bằng cách sử dụng ssh -X user@192.168.1.107 xclock

  2. Giả sử XDMCP được bật trên máy từ xa ...

    2a. Sử dụng Xnest -query 192.168.1.107 -geometry 1024x768 :1để bắt đầu một phiên đăng nhập từ xa trong một cửa sổ cục bộ.

    2b. Sử dụng Xephyr :1 -screen 1024x768 -query 192.168.1.107máy chủ X tốt hơnXnest

  3. Đồng thời giả sử XDMCP trên máy từ xa, định cấu hình máy cục bộ của bạn để sử dụng trình chọn XDMCP thay vì lời chào tiêu chuẩn khi khởi động.

Kích hoạt XDMCP chỉ đơn giản là một trường hợp đặt

[xdmcp]
Enable=true

vào /etc/gdm/custom.confvà khởi động lại gdmhoặc khởi động lại (giả sử bạn đang chạy gdm).

Nếu bạn chỉ có ý định chạy một vài ứng dụng từ xa, thì tùy chọn 1 là đơn giản nhất và tiếp tục sử dụng lưu lượng được mã hóa SSH, điều mà không ai khác làm được (vì vậy chúng chỉ được sử dụng tốt nhất trên mạng cục bộ đáng tin cậy).

Nếu bạn cần một cái gì đó phức tạp hơn, thì 2b (Xephyr) có thể tốt hơn, nhưng tôi thường thấy chỉ cần sử dụng ssh -X ... &cho nhiều ứng dụng từ xa là đủ.

Nếu bạn đang làm mọi thứ từ xa, tức là máy cục bộ chỉ là một máy chủ hiển thị và không tự làm gì cả, thì bạn cần xem xét sử dụng tùy chọn 3, bắt đầu trình chọn XDMCP thay vì đăng nhập tiêu chuẩn.


PS: Như đã lưu ý trong các bình luận, cả hai XnestXephyrđều là các ứng dụng xử lý giao thức máy chủ X và đặt toàn bộ phiên vào một cửa sổ. Xnestsử dụng các chức năng được cung cấp bởi máy chủ X cục bộ trong khi Xephyrxử lý nhiều giao thức máy chủ hơn nên mạnh mẽ hơn. Chúng có thể không được cài đặt theo mặc định vì người dùng trung bình sẽ không sử dụng chúng.


PPS: Sau một chút suy nghĩ, rõ ràng làm thế nào để mã hóa một Xephyrhoặc Xnestphiên ...

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

1
Có thể hữu ích để chỉ ra những gì Xnest / Xephyr làm và tại sao, vì chúng không được cài đặt theo mặc định, tôi không nghĩ vậy. Tôi chưa bao giờ thấy bất kỳ nhu cầu sử dụng xdmcp, vì vậy tôi không có ý tưởng nào cho mình. Tôi sử dụng đơn giản ssh -Ytừ một thiết bị đầu cuối, sau đó chạy những gì tôi cần từ đó.
Marty Fried

@MartyFried: Có vẻ như cả hai đều là máy chủ X có thể chạy trong một cửa sổ. Có vẻ như người dùng muốn chuyển tiếp toàn bộ phiên / màn hình. Cá nhân tôi chỉ sử dụng VNC, công cụ này sẽ tạo ra một màn hình mới trên máy chủ X hiện có và giúp tôi không phải đau đầu.
ish

@izx: Trước đây tôi đã sử dụng VNC cho các hệ thống Windows, nhưng với hai hệ thống Ubuntu, tôi thường thích ssh tích hợp, mặc dù đôi khi tôi cảm thấy bối rối khi chạy các ứng dụng GUI, vì khó phân biệt các ứng dụng cục bộ và ứng dụng từ xa. Nhưng đối với những gì tôi làm (chủ yếu là chỉnh sửa từ hoặc quản trị một máy chủ), nó dường như hoạt động tốt nhất.
Marty Fried

1
@MartyFried Nhược điểm của VNC là bạn chỉ cần điều khiển màn hình của máy từ xa. Vì vậy, bạn không thể có một người dùng đăng nhập vào màn hình đó với một người dùng khác được kết nối từ xa. Các giải pháp XDMCP hoàn toàn tách biệt các phiên cho phép 2 hoặc nhiều người dùng sử dụng cùng một máy.
StarNamer

Giải pháp 2b của bạn đã làm việc một điều trị. Tôi đã thử phiên bản ssh, nhưng có một vấn đề về các phím ssh. Tin nhắn quá dài để đăng ở đây. Tôi sẽ sử dụng phương pháp hoạt động ngay bây giờ.
benlad

0

Trong trường hợp bạn muốn học cách sử dụng ssh tiêu chuẩn từ một thiết bị đầu cuối, tôi nghĩ rằng tôi sẽ cung cấp cho bạn một bản tóm tắt nhanh chóng, vì bạn gặp khó khăn khi sử dụng các phím ssh, có vẻ như vậy. Ưu điểm là nó phổ quát hơn và rất linh hoạt.

Để sử dụng các khóa ssh, an toàn hơn, đôi khi cần thiết và thuận tiện hơn vì bạn chỉ cần nhập khóa một lần, bạn cần thực hiện việc này một lần cho bất kỳ máy chủ ssh từ xa nào:

tạo khóa (có thể sử dụng dsa thay vì rsa, nếu cần)

ssh-keygen -t rsa    

chuyển chìa khóa đến máy chủ từ xa

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

nếu không phải cổng chuẩn 22, hãy sử dụng cổng này: Lưu ý trích dẫn xung quanh đối số

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

Nếu sử dụng dsa, có một lệnh hơi khác, thêm -i <homedirectory>/.ssh/id_dsa

Ở đâu đó sau này, bạn sẽ cần nhập mật khẩu, tách biệt với mật khẩu đăng nhập thông thường của bạn. Đã được một thời gian và tôi đã quên trình tự chính xác, nhưng nó đã rõ ràng. Sau đó, lần đầu tiên bạn kết nối, bạn sẽ được hỏi mật khẩu này một lần. Tôi sử dụng cùng tên đăng nhập, vì vậy tôi không cần nhập tên người dùng (tên giả định giống như tên người dùng từ xa). Ngoài ra, đối với các máy chủ trên lan của bạn, bạn có thể nhập ".local" thay vì địa chỉ IP, tôi tin rằng (hoạt động với tôi).

Bạn thậm chí có thể gắn kết một hệ thống tập tin từ xa bằng cách sử dụng sshfs (giả sử sshfs đã được cài đặt); thay thế một đường dẫn thư mục cho local-mount-thư mục:

sshfs remote-host: local-mount-directory

(không sử dụng fusermount -u local-mount-directory)

Tôi nghĩ rằng nó sẽ sử dụng thư mục chính của bạn theo mặc định, nếu bạn rời khỏi thư mục gắn kết cục bộ. `

Sao chép tập tin có thể được thực hiện với scp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.