Làm cách nào để thiết lập chia sẻ máy tính từ xa thông qua SSH?


Câu trả lời:


51

Cách 1:

Điều này có thể đạt được với máy chủ vino vnc & remmina (cả hai đều được mặc định với ubfox; nếu không cài đặt nó bằng cách chạy sudo apt-get install remmina). Sau đó, Chạy các lệnh sau từ máy tính cục bộ trong dấu nhắc thiết bị đầu cuối:

  1. ssh -Y gman@remote. Sử dụng chuyển tiếp X11 đáng tin cậy, nếu không nó sẽ không hoạt động

  2. vino-preferences. Nó sẽ mở vino-ưu đãi.

    ưu tiên vino

  3. Cũng bấm vào configure network automatically to accept connection. Nhưng đừng nhập bất kỳ mật khẩu nào, mã hóa base64 của nó . Sau đó bấm đóng. Sau đó chạy:

    sudo -s
    
    export DISPLAY=:0.0
    
    xhost +
    
    /usr/lib/vino/vino-server & 
    

    Nó sẽ khởi động máy chủ vino.

  4. Thoát khỏi máy chủ:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
  5. Sau đó mở remmina . Chọn vnctheo giao thức.

    Dưới basictab đặt địa chỉ máy chủ trong servertrường.

    Trên tab ssh bấm enable ssh tunnel. Dưới ssh authentication, nó có thể passwordhoặc public key:

    ưu tiên remmina

    Nhấp vào để lưu. Và sau đó nhấp đúp chuột vào tên kết nối (máy tính để bàn tại nhà như trong hình) để bắt đầu duyệt máy tính từ xa.


Cách 2:

x11vnclà một máy chủ VNC đơn giản và bạn sẽ không phải loay hoay với cài đặt Gnome hoặc 500 tường lửa, chỉ cần cài đặt x11vnctrên tất cả các máy tính của bạn (với con rối hoặc bất cứ thứ gì bạn đang sử dụng để kiểm soát hàng loạt).

Sau đó, từ máy tính cục bộ của bạn chạy:

ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

Rõ ràng là trao đổi user@hosttên người dùng và tên máy chủ / IP của máy tính từ xa.

Và sau đó sử dụng ứng dụng khách VNC mà bạn chọn để kết nối localhost:5900. Lệnh SSH khởi động máy chủ vnc trên máy tính từ xa và sau đó chuyển trở lại cổng đó qua SSH. Bạn không phải mở bất kỳ cổng nào (miễn là bạn đã có thể SSH).

Nếu máy tính của bạn có cài đặt hiển thị ngộ nghĩnh, bạn có thể làm tốt hơn để thoát khỏi -display :0phân đoạn trong lệnh SSH. x11vncsau đó sẽ tự động cố gắng tìm màn hình phù hợp.


Nguồn: Askubfox


Nếu bạn đang sử dụng vncviewer với kết nối ssh chậm, lệnh của bạn sẽ giống như vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(trên Debian / Ubuntu, trình vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0xem là từ chặt chẽvnc) hoặc (trên Red Hat / Fedora, trình xem đến từ tigervnc), trong đó mức chất lượng trên cả Debian và Redhat là từ 0 đến 9, trong đó 9 là tốt nhất, nhưng cần kết nối nhanh.
erik

@erik Cảm ơn bạn đã giải thích cách sử dụng với vncviewerkết nối chậm. Cá nhân tôi, có lẽ sẽ thiết lập QualityLevel=4 or 5bởi vì 0 qualitylevel(đó là 256 colors, tôi nghĩ) là quá buồn tẻ đối với tôi.
Khurshid Alam

1
"Phương pháp 2" của bạn là hoàn hảo để truy cập nhanh vào màn hình vật lý từ xa mà không cần bất kỳ cài đặt cố định đặc biệt nào. Tôi cần thêm tham số -auth như được giải thích trong thông báo lỗi khi tôi thực thi lệnh nhưng nếu không thì hoạt động hoàn hảo. Cảm ơn!
Pierre

@gerky phương thức 3 sẽ là NoMachine, hiện tại là nhanh nhất và miễn phí (mặc dù không phải là nguồn mở) và cũng hoạt động trên Android
Aquarius Power

1
Đối với phương pháp 2, tôi đã phải sử dụng -auth guessvà chạy nó với quyền root. Rất hữu ích, cảm ơn!
Bob Carlson

9

Tổng quan về giải pháp

Giả sử bạn đã thiết lập một OpenSSH Servermáy chủ, trước tiên bạn phải bật điều khiển máy tính để bàn trên máy chủ của mình. Nếu trước tiên bạn có thể bật điều khiển máy tính để bàn trên máy chủ của mình cục bộ, hãy đi tới 1a. Nếu trước tiên bạn phải bật điều khiển máy tính để bàn trên máy chủ của mình từ xa, hãy đến 1b.

Tiếp theo, tạo hồ sơ Máy khách Máy tính Từ xa trên máy khách của bạn để kết nối với máy chủ thông qua một đường hầm SSH và cuối cùng xem và kiểm soát máy tính để bàn của máy chủ thông qua một đường hầm SSH.

1a. Kích hoạt cục bộ điều khiển từ xa của máy chủ

Thực hiện như sau trên máy chủ:

vino-preferences
  • vino-preferences cũng trong Dash dưới Desktop Sharing

nhập mô tả hình ảnh ở đây

  1. Đánh dấu Allow other users to view your desktop
  2. Đánh dấu Allow other users to control your desktop
  3. Đánh dấu Require the user to enter this password
  4. Nhập cụm mật khẩu khó đoán
  5. Đóng

1b. Từ xa kích hoạt điều khiển từ xa của máy chủ

Thực hiện các thao tác sau trên máy khách, thay thế 123.123.12.3bằng địa chỉ IP của máy chủ của bạn:

ssh -Y 123.123.12.3
  • -Y, Cho phép chuyển tiếp X11 đáng tin cậy. Chuyển tiếp đáng tin cậy X11 không chịu sự kiểm soát của tiện ích mở rộng X11 AN NINH.

vino-preferences
  • vino-preferences cũng trong Dash dưới Desktop Sharing

nhập mô tả hình ảnh ở đây

  1. Đánh dấu Allow other users to view your desktop
  2. Đánh dấu Allow other users to control your desktop
  3. Đánh dấu Require the user to enter this password
  4. Nhập cụm mật khẩu khó đoán
  5. Đóng

Tạo hồ sơ máy khách từ xa trên máy khách của bạn

Thực hiện như sau trên máy khách:

remmina
  • Remmina cũng trong Dash dưới Remmina Remote Desktop Client

Ctrl+ Nhoặc Kết nối> Mới

nhập mô tả hình ảnh ở đây

  1. Điền địa chỉ IP của bạn [123.123.12.3] vào đó ghi Server
  2. Chuyển sang SSHtab

nhập mô tả hình ảnh ở đây

  1. Đánh dấu Enable SSH Tunnel
  2. Trỏ máy khách để bàn của bạn vào cổng SSH không chuẩn của bạn
  3. Đặt của bạn SSH Authentication <username>và chế độ
  4. Kết nối

Xem và điều khiển máy chủ

Trên máy khách, khi được hỏi <username>mật khẩu, hãy nhập mật khẩu để tạo đường hầm SSH. Khi được hỏi mật khẩu VNC, hãy nhập cụm mật khẩu bạn đã nhập trước đó vào máy chủ.

Nếu thành công ở bước này, bây giờ bạn sẽ xem và điều khiển máy tính để bàn của máy chủ từ máy khách của bạn thông qua một đường hầm SSH.


Điều này có vẻ khá toàn diện, nhưng cổng tùy chỉnh 12345 được xác định ở đâu trên máy chủ?
John T

Tôi đoán bạn cần một lệnh ssh chạy từ máy khách ở đâu đó, đại loại như: ssh -L 12345: localhost: 5900 user @ server_ip trước khi sử dụng máy khách từ xa như được mô tả.
John T

3

Tôi đã có thể thiết lập cài đặt Ubuntu 16.04 mới từ kết nối ssh từ xa với tập lệnh sau:

#! / bin / bash
xuất HIỂN THỊ =: 0
đọc -e -p "Mật khẩu VNC: mật khẩu" -i "ubfox"
dconf write / org / gnome / desktop / remote-access / enable true
dconf write / org / gnome / desktop / remote-access / prompt-enable false
dconf write / org / gnome / desktop / remote-access / xác thực-phương thức "['vnc']"
dconf write / org / gnome / desktop / remote-access / request-mã hóa sai
dconf write / org / gnome / desktop / remote-access / vnc-password \ "\ '$ (echo -n $ password | base64) \' \"
dconf dump / org / gnome / desktop / remote-access /
sudo dịch vụ lightdm khởi động lại

Việc trích dẫn rất quan trọng đối với bất kỳ cài đặt chuỗi nào (đánh dấu đơn bên trong dấu ngoặc kép). Để dconf có thể viết, nó cần quyền truy cập vào XWindows, vì vậy đó là lý do tại sao phần HIỂN THỊ xuất khẩu là cần thiết. Tôi nghĩ bạn vẫn cần phải đăng nhập vào máy tính để bàn trên máy Ubuntu thực tế để kết nối với VNC sau này. Lệnh dump chỉ ở đó để xác nhận tất cả các cài đặt đã được giữ, bạn không thực sự cần điều đó.

Tùy chọn bạn có thể muốn làm điều này nếu bạn muốn giữ cho màn hình hiển thị mọi lúc:

dconf write / org / gnome / desktop / Screensaver / lock-enable false
dconf write / org / gnome / desktop / Screensaver / ubfox-lock-on-đình chỉ sai
dcs viết / org / gnome / desktop / session / idle-delay "uint32 0"

2
  1. Bạn có thể sử dụng ssh để bắt đầu một phiên vnc
  2. Sử dụng Xnestvới X11 từ trước để bắt đầu một phiên từ xa và chuyển tiếp nó đến máy tính hiện tại của bạn. (Tôi làm điều này theo thời gian với pi của tôi) trang người đàn ông

Tôi sử dụng Xnestnhư vậy:

  • Xnest :1 -ac &
  • sau đó DISPLAY=:1 . /etc/X11/Xsession

0

Cách khởi động máy chủ Vino từ xa mà không cần chuyển tiếp X (chỉ dòng lệnh)

Đăng nhập vào máy tính từ xa vì người dùng sẽ chia sẻ máy tính để bàn của họ và chuyển tiếp cổng 5900 sang cùng một cổng trên localhost. Với PuTTY, chuyển hướng được đặt trong Kết nối / SSH / Đường hầm. Với một dòng lệnh, sử dụng:

 ssh -L 5900:localhost:5900 user@remote-computer

Cài đặt vino-servernếu nó chưa được cài đặt. Ví dụ:

sudo apt install vino

Cho phép chia sẻ màn hình (khớp với số hiển thị trên dòng 1 và 2):

echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

Bắt đầu trình xem VNC và kết nối với localhostđịa chỉ máy chủ VNC.


Có những điều sau đây. Có vẻ như tất cả đều cho rằng bạn đã đăng nhập vào bảng điều khiển GUI? No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
tảo

0

dựa trên câu trả lời @Khurshid Alam Tôi trình bày đoạn trích sau:

ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost

  • Đây là một lệnh không yêu cầu bất kỳ tương tác

  • Nó tạo đường hầm SSH với chuyển tiếp cổng, bắt đầu x11vnctheo cách hợp lý an toàn và khởi chạy và kết nối trình xem VNC

  • Nó yêu cầu x11vnc trên máy chủ đích, nhưng không cần cấu hình thêm

  • Nó yêu cầu vinagre trên PC của bạn, nhưng bạn có thể thay đổi nó một cách tầm thường cho một người xem VNC khác

0

Trong máy chủ PC.

  • Mở 'vino-Preferences' từ thiết bị đầu cuối hoặc 'Chia sẻ màn hình' bằng cách sử dụng dấu gạch ngang.

sở thích của vino

Trong PC khách (từ nơi bạn muốn điều khiển UI máy chủ).

  • Giữ các cài đặt như hiển thị trong các hình ảnh bên dưới (với các thay đổi tại vị trí của tên người dùng và IP).

* Tab * cơ bản * Nâng cao * tab * Thẻ SSH *

Cạm bẫy.

  • Khi tôi cố gắng đặt tùy chọn vino trong máy chủ từ PC từ xa bằng SSH, nó đã bị thay đổi, nhưng kết nối đã không xảy ra. Tôi đã phải làm điều đó trong máy chủ trực tiếp (không phải từ xa). Tôi không biết lý do cho hành vi này.
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.