Cảnh báo về điều gì: Thiết lập chuyển tiếp X11 không đáng tin cậy không thành công: dữ liệu khóa xauth không được tạo ra có nghĩa là gì khi ssh'ing với -X?


134

Khi tôi sử dụng ssh -Xtrên máy Mac (chạy OS X 10.6.7) để kết nối với hộp Ubuntu (11.04), tôi nhận được cảnh báo sau:

Cảnh báo: thiết lập chuyển tiếp X11 không tin cậy không thành công: dữ liệu khóa xauth không được tạo Cảnh báo: Không có dữ liệu xauth; sử dụng dữ liệu xác thực giả để chuyển tiếp X11.

Có điều gì tôi có thể làm để làm cho cảnh báo này biến mất? Nếu không, tôi có thể bỏ qua nó một cách an toàn?

Chuyển tiếp X11 dường như hoạt động tốt, mặc dù tôi thấy thông báo này:

Xlib: phần mở rộng "RANDR" bị thiếu trên màn hình "localhost: 10.0".

Điều đó có liên quan đến cảnh báo không? (Tôi đoán là không. Nếu không, tôi sẽ gửi một câu hỏi mới về điều đó.)


1
IS chương trình xauth được cài đặt trên máy chủ Ubuntu?
slubman

sudo apt-get install xauthnói với tôi "xauth đã là phiên bản mới nhất"
Daryl Spitzer

Khi đăng nhập vào máy chủ Ubuntu, đầu ra của 'which xauth' là gì?
slubman

Trên thực tế tôi nghĩ bạn nên đọc lời giải thích này: mail-archive.com/cygwin-xfree@cygwin.com/msg17927.html ... bạn có thể bỏ qua cảnh báo này
slubman

2
đôi khi điều này có thể được gây ra bởi các vấn đề với tập tin ~ / .Xmasterity của bạn. Nếu bạn xóa nó, nó sẽ được tạo lại vào lần tiếp theo bạn cố gắng đăng nhập.
michael

Câu trả lời:


145

Bất kỳ lý do nào bạn không muốn sử dụng cờ -Y thay vì cờ -X?

Nói một cách đơn giản, sự khác biệt giữa -X và -Y là -Y cho phép chuyển tiếp X11 đáng tin cậy.


4
Không, tôi chỉ không biết về cờ -Y khi tôi viết câu hỏi. Tôi tin rằng đó đã trở thành một giải pháp. Thay đổi câu trả lời của bạn để nó không phải là một câu hỏi (và sẽ rất tuyệt nếu bạn giải thích ngắn gọn về sự khác biệt giữa -Y và -C) và tôi sẽ chấp nhận nó.
Daryl Spitzer

Có trường hợp nào khi bạn không muốn sử dụng -Y thay vì -X không?
Dậu

@Rooster cho các hệ thống rất cũ trong đó -Y không hỗ trợ tôi sẽ nói
Petr

Mẹo khắc phục sự cố: Chạy "ssh -vv ..." và tìm dòng xauth và bất kỳ thông báo lỗi nào. Bạn có thể thử chạy dòng xauth nó hiển thị trực tiếp. Đối với tôi, tôi cần nó giống như "danh sách xauth: 0" (đáng tin cậy) chứ không phải "xauth -f / tmp / ssh ... list: 0" (không đáng tin cậy). Mà -Y đã sửa và "ForwardX11Trust yes" trong máy chủ từ xa / etc / ssh / ssh_config (hoặc ~ / .ssh / config) cũng đã được sửa.
Curtis Yallop

Giải pháp này cũng đã làm việc với Cygwin / X.
linux64kb

25

Nếu bạn đến đây vào năm 2015: ngay cả khi mọi thứ khác được thiết lập đúng cách, điều này cũng có thể xảy ra trên Mac OS X 10.10 Yosemite, khi sử dụng ssh -Xvà chạy phiên bản XQuartz <= 2.7.7. Nguyên nhân sâu xa là các ổ cắm hiển thị X11 bị ghi bên ngoài đường dẫn tìm kiếm xauth: vấn đề # 2068 trong trình theo dõi XQuartz.

Chỉnh sửa: Một XQuartz cố định đã được phát hành tại trang chủ mới, xquartz.org và cài đặt phiên bản mới nhất từ ​​đó (hiện tại là 2.7.9) sẽ khắc phục sự cố.


1
Cảm ơn bạn! Tôi không biết rằng XQuartz tôi vừa tải xuống từ đầu trang XQuartz không thực sự là bản phát hành mới nhất.
craigds

Đáng chú ý là brew install xquartzhiện cài đặt phiên bản 2.7.7 đã lỗi thời.
Martin Cleaver

brew install Caskroom/cask/xquartzsẽ giúp bạn có được XQuartz mới nhất với HomeBrew
Nick

Hoặc ngắn hơn brew cask install xquartz.
Franklin Yu

17

Nếu bạn nhận được thông báo tương tự ngay cả khi sử dụng -Y, xauthchương trình có thể bị thiếu trên máy chủ. Trên các hệ thống giống như Debian, bạn cần xauthgói. Trên các hệ thống giống như RedHat, bạn cần xorg-x11-xauthgói.


15

"Không đáng tin cậy" trong ngữ cảnh này có nghĩa là bạn không tin tưởng vào kết nối. SSH sẽ sử dụng các biện pháp bảo mật bổ sung để cố gắng giúp X11 chuyển tiếp an toàn hơn. "Đáng tin cậy" có nghĩa là bạn hoàn toàn tin tưởng rằng không có máy chủ từ xa nào có quyền truy cập vào dữ liệu Xauth của bạn và sử dụng nó để theo dõi các tổ hợp phím của bạn chẳng hạn.

Thuật ngữ này thực sự làm tôi bối rối trong nhiều năm. Tôi nghĩ rằng kết nối "đáng tin cậy" là an toàn hơn. Nhưng thực ra đó là một tùy chọn bạn nên sử dụng trong các tình huống mà kết nối IS đáng tin cậy và bạn muốn chạy mọi thứ mà không cần các biện pháp bảo mật bổ sung cản trở bạn. "Không đáng tin cậy" là cách làm cho nó (phần nào) an toàn hơn để đối phó với một máy chủ từ xa không đáng tin cậy.

Kết nối "Không đáng tin cậy" cố gắng hạn chế những gì một chiếc mũ đen có thể làm cho bạn bằng cách tham gia tiện ích mở rộng bảo mật X11 và vô hiệu hóa các tiện ích mở rộng khác mà bạn (hy vọng) không cần. Đây có lẽ là lý do tại sao RandR bị vô hiệu hóa với -X. Bạn có cần xoay màn hình X từ máy chủ từ xa không?

Cũng cần lưu ý rằng chuyển tiếp X11 "không đáng tin cậy" sẽ tắt sau một khoảng thời gian nhất định để giữ cho bạn không vô tình rời khỏi nó. Những nỗ lực mới để mở cửa sổ sẽ thất bại sau đó. Điều đó cắn tôi vài lần trước khi tôi đọc đủ tài liệu để hiểu chuyện gì đang xảy ra.


9

Tôi không có một thiết lập có thể thể hiện hành vi này, vì vậy đây là một cảnh quay trong bóng tối:

Các cảnh báo có thể bị ức chế nếu bạn thiết lập ForwardX11Trustedđể "no"cho các máy cung cấp cho cảnh báo này. Bạn có thể đặt tùy chọn này vào một trong hai ~/.ssh/confighoặc /etc/ssh/ssh_config, và bạn có thể đặt tùy chọn cụ thể cho một máy chủ cụ thể bằng cách đưa Host <hostname>vào dòng trên. các <hostname>thành phần phù hợp với những gì bạn gõ vào dòng lệnh (không phải là hostname giải quyết), và nó có thể bao gồm ký tự đại diện.


Người ta có thể sử dụng ssh -Yđể thực hiện chuyển tiếp X11 đáng tin cậy nhưng làm cách nào để sửa lỗi không đáng tin cậy?
Pavel imerda

Tôi đã gặp lỗi tương tự trong Redhat và bây giờ tôi có thể giải quyết nó bằng cách chỉnh sửa tệp cấu hình /etc/ssh/ssh_configở phía máy khách. Cảm ơn bạn
Gangadhar Jannu

7

BEWARE (mệt mỏi vì đọc các câu trả lời không đầy đủ dẫn đến lỗ hổng bảo mật)

1 / sử dụng ssh -Y có nghĩa là ở đây có thông tin xauth giả mạo là xấu!

2 / ssh -X sẽ hoạt động kể từ XQuartz, khi được bật, sử dụng xauth. Vấn đề duy nhất là ssh đang tìm kiếm xauth trong / usr / X11R6 / bin và trên macos với XQuartz, nó nằm trong / opt / X11 / bin

Giải quyết an toàn:

1 / Kích hoạt tùy chọn đầu tiên trong tab Bảo mật của tùy chọn (Cmd-,) cho phép kết nối được xác thực

2 / thêm

XAuthLocation /opt/X11/bin/xauth

trong $ HOME / .ssh / config

3 / ssh -X you_serverhoạt động trong một maner an toàn


6

Nếu cài đặt xauthkhông hoạt động đúng, một trường hợp đặc biệt khó chịu có thể là một .Xauthoritytệp bị hỏng . Trường hợp cụ thể này cho phép một số máy khách X hoạt động, nhưng không phải máy khách nào khác có xu hướng thất bại nhiều hơn với màn hình mới hơn. Loại bỏ và tạo lại .Xauthoritytập tin có thể giải quyết vấn đề đó.


6

Loại trừ các vấn đề phía máy chủ

Trước tiên, bạn nên loại trừ bất kỳ vấn đề nào về phía máy chủ. Bạn có thể ssh -Xtừ bất kỳ máy chủ khác thành công? Có ssh -Ylàm việc trong khi ssh -Xkhông? Trong cả hai trường hợp, giả sử ssh + X11 được thiết lập chính xác trên máy chủ của bạn và chuyển sang phần tiếp theo.

Nếu bạn không ở vị trí để kiểm tra điều đó (bạn có nhưng một máy tính xách tay của bạn đang chạy X11, giả sử), bạn có thể sshtừ máy chủ đến chính nó bằng một phiên giả:

  1. export DISPLAY=:44# (Vỏ Bourne) hoặc
    setenv DISPLAY :44# (csh / tcsh)
  2. xauth add $DISPLAY MIT-MAGIC-COOKIE-1 1234 # Cookie Bogus chỉ dành cho thử nghiệm này
  3. ssh -X localhost env |grep DISPLAY

Kết quả dự kiến: sẽ có một biến HIỂN THỊ được đặt ở đầu từ xa của phiên ssh-to-self. Nếu bạn không nhận được kết quả, máy chủ của bạn có thể bị cấu hình sai (ví dụ: thư viện X11 và / hoặc xauthlệnh có thể bị thiếu; hoặc cấu hình sshd có thể được đặt để từ chối truy cập X11)

Trên Mac: kiểm tra xem Xquartz có cập nhật không

Theo câu trả lời của Will Angley

Kiểm tra ssh -vv -Xđầu ra

Thông báo lỗi bạn trích dẫn là một triệu chứng có thể có nhiều nguyên nhân. Hãy thử lại với , điều này sẽ cung cấp cho bạn thêm manh mối về lý do tại sao thiết lập đường hầm X11 không thành công.ssh -X -vv remotehost

Bạn có thấy thông báo sau xuất hiện không?

debug1: Không có chương trình xauth.
Nếu vậy,

  1. Lưu ý vị trí trên hệ thống máy khách của bạn, xauthlệnh nằm trong:
    mà xauth
  2. Thêm phần sau vào cuối ~ / .ssh / config của bạn (và thêm nhận xét để nhắc nhở bản thân giữ nó ở đó trong tương lai):
    Người dẫn chương trình *
        XAuthLocation / opt / X11 / bin / xauth
    
    Điều chỉnh đường dẫn này theo phát hiện của bước 1 - Tín dụng cho Jan-Willem Arnold

3

Như đã được giải thích ở trên, những điều sau đây làm việc cho tôi:

Chỉnh sửa ~ / .ssh / config để thêm các dòng

Host *
    XAuthLocation /opt/X11/bin/xauth

và bây giờ tên máy chủ ssh -X hoạt động (XQuartz 2.7.11, macOS 10.4 Mojave)


0

Tôi đã cài đặt XQuartz 2.7.11 mới nhất, nhưng tôi nghĩ rằng tôi cũng đã cập nhật HĐH một vài lần kể từ đó. Tôi đã cài đặt lại XQuartz 2.7.11 và hiện tại nó đang hoạt động tốt.


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.