2013-11-20 24 views
8

Tôi đang gặp sự cố khi thiết lập chuyển tiếp X11 trên máy ảo lang thang.SSH vào khu vực lang thang với máy chủ X được thiết lập

Tôi đang chạy Xming cho máy chủ X và PuTTY làm ứng dụng SSH của tôi.

Đây là những gì tôi nhận được khi tôi chạy vagrant ssh-config:

Host default 
    HostName 127.0.0.1 
    User vagrant 
    Port 2200 
    UserKnownHostsFile /dev/null 
    StrictHostKeyChecking no 
    PasswordAuthentication no 
    IdentityFile C:/Users/MyName/.vagrant.d/insecure_private_key 
    IdentitiesOnly yes 
    LogLevel FATAL 
    ForwardAgent yes 
    ForwardX11 yes 

PuTTY của tôi có chuyển tiếp X11 kích hoạt và X hiển thị vị trí thiết lập để 0.0.

Khi tôi làm echo $DISPLAY Tôi không nhận được phản hồi.

Tôi không chắc chắn về những gì tôi đã định cấu hình sai. Tôi đã theo dõi following advice khi thiết lập ứng dụng PuTTY của tôi. Nếu có một cách dễ dàng hơn để thiết lập VM với chuyển tiếp X11, vui lòng cho tôi biết.

Để tham khảo, đây là nội dung của số Vagrantfile của tôi.

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 

    config.ssh.forward_agent = true 
    config.ssh.forward_x11 = true 

end 
+0

này đã được giải quyết bằng cách sử dụng Cygwin như máy chủ X bằng cách làm theo này [tư vấn] (http://x.cygwin.com/docs/ug/setup.html). – Matt

+0

Bạn có thể thêm nó dưới dạng câu trả lời dưới đây và chấp nhận không? Nhận xét không phải là nơi tốt nhất cho câu trả lời đúng. –

+0

@RadekSimko Xong. Cảm ơn đã chỉ ra điều đó! – Matt

Trả lời

3

Install Cygwin với các gói sau đây để giải quyết vấn đề theo quy định tại website này:

  • xorg-server
  • xinit
  • xorg-docs (đối với tài liệu hướng dẫn)
  • openssh (trong trường hợp này chưa được cài đặt trước đây)

Sau đó tải lên cửa sổ bằng cách sử dụng startxwin từ thiết bị đầu cuối Cygwin.

Một lưu ý rằng tôi phát hiện ra sau đó là nó là tốt hơn để ssh vào lang thang bằng cách sử dụng lệnh sau:

vagrant -Y ssh

Thần:

vagrant -X ssh

Sau đó được thực hiện trong không tin cậy ở chế độ này trong answer và thời gian chờ sau một thời gian.

6

Tôi gặp sự cố rất giống nhau, nhưng trong trường hợp của tôi, đó là sự cố với máy ảo Vagrant. Dưới đây là một số điều cần kiểm tra:

  • X11Forwarding cần phải được thiết lập để yes trong /etc/ssh/sshd_config
  • Enable tiết đăng nhập cho ssh (vagrant ssh -- -vvv -X trong Linux, Putty cũng dường như có một dòng cờ -v lệnh) và tìm kiếm thú vị tin nhắn.

Với Vagrant VM của tôi sau này tiết lộ được thông báo sau:

debug1: Remote: No xauth program; cannot forward with spoofing 

Sau khi cài đặt một gói phần mềm cung cấp xauth (xorg-xauth, xorg-x11-xauth hoặc tương tự), vagrant ssh -- -X làm việc tốt.

1

Sử dụng "startxwin" để chạy máy chủ Cygwin X. Sử dụng putty hoặc trình khách ssh cygwin để ssh đến máy ảo khách của bạn.

Nếu sử dụng ssh cygwin, hãy "xuất DISPLAY =: 0" trước khi chạy ssh (ví dụ: "vagrant ssh - -vvv -X").

Đối với putty: Chạy "startxwin - -listen tcp", bật chuyển tiếp ssh-X11 trong cấu hình kết nối putty, đặt "vị trí hiển thị X" thành "localhost: 0" và đặt đường dẫn chính xác của tệp .Xauthority (trình duyệt, nó có thể là trong thư mục nhà của bạn, đầu ra startxwin sẽ cho bạn biết nơi).

Có lẽ không sử dụng msys2 ssh (môi trường mặc định được cài đặt mặc định là msys2 nhưng cũng có vẻ không hoạt động tốt với Cygwin) với máy chủ Cygwin X. (Xem chi tiết để biết thêm về việc tại sao)

chi tiết:

Nếu bạn nhận được "kết nối /tmp/.X11-unix/X0: Không có tập tin hoặc thư mục" (dưới ssh chế độ verbose) hoặc lỗi putty " Proxy PuTTY X11: không thể kết nối với máy chủ X được chuyển tiếp: Lỗi mạng: Kết nối bị từ chối ", hãy thử sử dụng ổ cắm tcp thay vì ổ cắm miền unix mặc định.

Khi bạn chạy máy chủ Cygwin X, hãy vào "X -listen tcp -multiwindow" (multiwindow là tùy chọn - nó sẽ mở cửa sổ mới cho từng ứng dụng).

Nếu sử dụng openssh "ssh" từ dòng lệnh: Trước khi đi "vagrant ssh - -vvv -X", đi "xuất DISPLAY = localhost: 0" (không phải ": 0" nhưng "localhost: 0" vì vậy nó sử dụng tcp). Tôi đang chạy git bash trong đó sử dụng msys2 mà dường như không giao tiếp đúng với máy chủ Cygwin X của tôi trên ổ cắm miền unix giả lập. Nhưng nếu tôi sử dụng "vagrant ssh - -X" dưới dấu nhắc Cygwin của tôi (với DISPLAY =: 0 cho unix domain sockets), nó hoạt động.

lớn nguồn thông tin: http://dustwell.com/how-x-over-ssh-really-works.html

Ngoài ra, bạn có thể thêm "config.ssh.forward_x11 = true" để Vagrantfile của bạn. Tôi nghĩ rằng điều này đặt X11Forwarding trong/etc/ssh/sshd_config khi máy khách ảo được thiết lập hoặc "tải lại vagrant" được chạy. - https://coderwall.com/p/ozhfva/run-graphical-programs-within-vagrantboxes

Cập nhật: Không nên chạy X mà không có bảo mật xauth (như được hiển thị ở trên). Nó không an toàn. Ví dụ, các máy tính khác trên cùng một mạng LAN có thể kết nối với máy chủ x của bạn thông qua tcp và đánh hơi các phím bấm của bạn bằng cách sử dụng xkeys. Sử dụng "startxwin" thay vì chạy X trực tiếp để nó sử dụng tùy chọn "-auth" của XWin. Điều này làm cho nó khó khăn cho tôi để có được sys msys2 của tôi để chuyển hướng X đến máy chủ Cygwin X của tôi. Nhật ký ssh trong khi kết nối nói rằng nó không thể tìm thấy lệnh xauth - đó là vì nó không có trong môi trường msys2 của tôi. Cygwin ssh X-chuyển hướng vẫn hoạt động tốt. Putty hoạt động tốt miễn là bạn thiết lập đường dẫn tệp .Xauthority (nó có lẽ là đúng trong thư mục chính của bạn) trong cấu hình phiên putty.

tôi phát hiện ra tình trạng tcp/unix-miền vấn đề ổ cắm/giải pháp thực sự là trong faq Cygwin (faq này khá hữu ích và có rất nhiều thông tin):

6.7. Các phiên X được PuTTY chuyển tiếp không thể kết nối. Các máy khách X không phải Cygwin cục bộ không thể kết nối.

Máy chủ X hiện sử dụng -nolisten tcp theo mặc định, làm tăng độ bảo mật của máy chủ X bằng cách không mở ổ cắm TCP/IP, chỉ một ổ cắm cục bộ (miền UNIX). Các ứng dụng không phải Cygwin không thể kết nối với ổ cắm đó.

https://x.cygwin.com/docs/faq/cygwin-x-faq.html

Các vấn đề liên quan