Làm cách nào để gỡ lỗi kết nối X11 bị từ chối vì xác thực sai


10

Tôi gặp vấn đề với chuyển tiếp X thông qua SSH. Tôi đã chiến đấu trong nhiều năm, nhưng dường như không ai có thể giúp đỡ.

Bây giờ tôi đang thực hiện một chiến thuật khác. Tôi muốn biết làm thế nào tôi sẽ gỡ lỗi các lỗi?

Tôi nên tìm nhật ký nào, tôi nên đặt thêm cờ nào (-v, v.v.) và tôi nên tìm gì?

Chỉnh sửa thêm:

Nếu tôi đăng nhập vào Putty vào máy chủ và thử xeyes, tôi nhận được:

Proxy PuTTY X11: đã cố gắng giao thức ủy quyền saiError: Không thể mở hiển thị: localhost: 10.0

Nếu xauth generate $DISPLAYtôi nhận được:

Proxy PuTTY X11: giao thức ủy quyền sai đã cố gắngxauth: (argv): 1: không thể mở hiển thị "localhost: 10.0".


Trong câu hỏi của bạn từ ngày khác, bạn mô tả các triệu chứng khác nhau. Bạn vẫn đang chịu đựng "Không thể mở màn hình", hoặc bạn đã giải quyết điều đó? Nếu bạn đã giải quyết được điều đó và một trong những câu trả lời cho câu hỏi đó rất hữu ích, bạn nên chọn nó làm câu trả lời để thưởng cho người đã giúp bạn.
Kenster

Đồng ý, bây giờ là một lỗi khác, tôi đã đóng câu hỏi đó.
wkdmarty

Xem nếu câu trả lời này áp dụng cho máy chủ của bạn.
Kenster

Kenster, tôi không có tệp RC trên máy chủ, vì vậy tôi đã tạo một tệp và dán mã. Không khác nhau.
wkdmarty

Trong nhật ký PuTTY, điều này xuất hiện sau khi tôi cố chạy chương trình x (sau khi đăng nhập SSH). 2014-09-01 15:16:38 Nhận được yêu cầu kết nối X11 từ 127.0.0.1 giáp9566 2014-09-01 15:16:38 Mở kết nối chuyển tiếp X11 đã thành công 2014-09-01 15:16:38 Không còn gì để gửi, đóng kênh 2014-09-01 15:16:38 Kết nối chuyển tiếp X11 bị chấm dứt
wkdmarty

Câu trả lời:


13

Giải pháp của tôi từng bước:

1) đăng nhập với tùy chọn -X root đăng nhập máy chủ từ xa

$ ssh -X root@192.168.1.39

2) kiểm tra xem tập tin .Xmasterity hiện có

[root @ localhost ~] # ls -al
[root @ localhost ~] # vim .Xmasterity

3) sao chép tệp .Xmasterity vào thư mục của người dùng khác

[root @ localhost ~] # cp .Xmasterity / home / oracle /
cp: ghi đè `/home/oracle/.Xmasterity '? y

4) đặt quyền cho tệp này

[root @ localhost ~] # chown oracle: oinstall .Xmasterity
[root @ localhost ~] # chmod 0600 .Xmasterity

5) người dùng orory đăng nhập

[root @ localhost ~] # su - orory

6) cài đặt hiển thị trong localhost: 10.0

[oracle @ localhost ~] $ echo $ HIỂN THỊ
lưu trữ nội bộ: 10.0
[oracle @ localhost ~] $ ls -al

7) liệt kê cookie xauth hiện có

[oracle @ localhost ~] $ xauth danh sách
localhost.localdomain / unix: 11 MIT-MAGIC-COOKIE-1 310f1b02c1080e73059391c193a1881b
localhost.localdomain / unix: 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb759

8) thêm

[oracle @ localhost ~] $ xauth thêm localhost.localdomain / unix: 10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb75

9) kiểm tra

[oracle @ localhost ~] $ xclock

Hy vọng họ phục vụ! @wcaraza


2
Phần xauth add .... là mẹo
Wei

bước 3. và 4. đã thực hiện thủ thuật cho tôi
kiltek

6

Đảm bảo rằng máy chủ SSH đã xauthcài đặt công cụ và ~/.Xauthoritytệp của bạn có thể ghi được. (Không tồn tại cũng không sao, miễn là xauthcó thể tạo ra nó.)

Kiểm tra nếu dữ liệu xauth đang được cập nhật:

server$ xauth list

Hãy thử thêm thủ công dữ liệu giả (trên máy chủ SSH) và xem xauthcó vấn đề gì không (ví dụ: không thể tạo tệp khóa hoặc để tự sửa đổi tệp Xauthority):

server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2

Nếu cần thiết, chạy lại dưới strace.

Chạy dịch vụ SSH ở chế độ gỡ lỗi, bằng cách cài đặt LogLevel DEBUG2cấu hình máy chủ ( /etc/ssh/sshd_config) hoặc bằng cách bắt đầu trực tiếp sshd ở chế độ gỡ lỗi:

server$ sshd -rddp 12234

(Trong ví dụ này, 12234là cổng SSH tạm thời mà bạn cần kết nối. Mọi cổng miễn phí sẽ làm.)


Cảm ơn bạn. Xauth trên máy chủ có thể ghi vào tệp .Xmasterity. Nhưng nó nên được đặt là gì? máy chủ = N40L, máy khách = Lin001. Danh sách xauth trên N40L có nên hiển thị một mục cho localhost: 10 MIT-MAGIC-COOKIE-1 {Lin001'sHexKey}?
wkdmarty

@wkdmarty: Có, sshd của bạn sẽ lắng nghe trên cổng TCP tương ứng để hiển thị: 10 (hoặc: 11 ,: 12 ...) và điều này sẽ hiển thị dưới dạng "localhost: 10". Tuy nhiên, đối với khóa hex, tôi thực sự không biết liệu nó có nghĩa là sử dụng cùng một khóa hay không - tôi nghĩ rằng ssh thực sự tạo ra một khóa mới và hoạt động như một proxy ...
user1686

ok hoàn hảo, tôi có thể thấy rằng 0.0.0.0:6011 đang lắng nghe. Biến HIỂN THỊ của tôi nêu N40L: 11.0, mà tôi nghĩ là sai, vì vậy tôi sẽ thay đổi nó thành HIỂN THỊ = localhost: 10.0. Không, vẫn còn lỗi. Tôi đã thông báo về kết nối SSH dòng này: debug2: x11_get_proto / usr / bin / xauth danh sách: 0,0 2> / dev / null ở bất cứ nơi nào tôi thấy đăng nhập kết nối SSH, dòng này khác ... hiển thị một thế hệ khóa, không bao giờ : 0,0.?
wkdmarty

@wkdmarty: Thông thường sshd nên đặt $ HIỂN THỊ thành giá trị chính xác ... và cổng 6011 không tương ứng với hiển thị 11, không phải 10, dù sao đi nữa.
dùng1686

1
"Biến HIỂN THỊ của tôi nêu N40L: 11.0 ... vì vậy tôi sẽ thay đổi điều đó". Để được thẳng thừng, để lại HIỂN THỊ một mình. Nếu ssh thiết lập chuyển tiếp X11, nó sẽ đặt HIỂN THỊ thành một giá trị sẽ hoạt động. Ghi đè giá trị mà ssh đặt sẽ khiến quá trình xử lý sự cố trở nên khó khăn hơn.
Kenster

3

Nó hoạt động, nó hoạt động. haha

CUỐI CÙNG.

Sau khi phát hiện ra rằng đó không phải là hệ thống, bằng cách thêm một người dùng thử nghiệm (x chuyển tiếp hoạt động "ra khỏi hộp"), tôi nghĩ rằng tôi đã bắt đầu sao chép các tệp khởi động .bash * để làm sáng tỏ người dùng "bị hỏng".

Không có tệp nào khác nhau, vì vậy tiếp theo tôi đã xóa thư mục người dùng .ssh. Khi tôi vào, nó rên rỉ về "Máy chủ từ chối khóa của chúng tôi", nhưng tôi có thể đăng nhập bằng mật khẩu. Sau khi đăng nhập, tôi có thể x chuyển tiếp hoàn hảo.

Bây giờ tôi sẽ thử thiết lập lại khóa và xem liệu tôi có thể làm việc đó không. Sau đó, nó sẽ trở lại bình thường.


Điều này làm việc cho tôi quá. Tôi đã thử tất cả các phương pháp khác, nhưng vâng, rõ ràng vấn đề nằm ở các phím.
Phụ trợ

1

Một điều nữa có thể gây ra vấn đề này là sự tồn tại của một ~/.ssh/rctệp trên máy chủ - máy bạn đang kết nối. Xóa nó (hoặc đổi tên nó) để giải quyết vấn đề.


1
Per man sshd, sshd chạy ~/.ssh/rcthay vì xauth, @PimpJuiceIT.
Ken Jackson

Cảm ơn bạn! Để biết thêm chi tiết, xem: docstore.mik.ua/orelly/networking_2ndEd/ssh/ mẹo . Có thể thêm các lệnh thích hợp để khởi động xauth trong tệp RC, nhưng tôi không tìm thấy.
Matt B.

0

rm ~/.Xauth* và sau đó kết nối lại.

Điều này làm việc cho tôi. Để biết thêm chi tiế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.