Giả sử bạn muốn vũ phu hãy tạo cho mình một kết nối với X ...
Giả sử bạn đã chạy các lệnh của mình trên máy chủ (nơi X chạy), nếu không, hãy để nó hoạt động trước và sau đó sử dụng 'ssh -X user @ server) từ máy khách sau đó;).
Có thể có một số cách để chạy các lệnh xauth, ví dụ, bạn có thể đang sử dụng 'sudo', nhưng điều đó có thể làm mất hoặc thay đổi các biến môi trường. Các biến môi trường sau đây cần được bảo tồn: HIỂN THỊ và XAUTHORITY. Để kiểm tra xem đó có phải là trường hợp bạn có thể chạy 'echo $ XAUTHORITY' giống như cách bạn chạy các lệnh của mình không, nhưng hãy đảm bảo rằng bạn không mở rộng các biến môi trường trước khi chạy các lệnh đó. Ví dụ: thử: sudo bash -c 'echo "$ XAUTHORITY"' để xem XAUTHORITY thực sự là gì sau khi bạn chạy sudo của mình (nếu nó biến mất, bạn có thể cần thêm một cái gì đó vào tệp sudoers của mình, xem ở nơi khác).
Cuối cùng, hãy chạy lệnh sau với tư cách là người dùng mà bạn muốn có quyền truy cập trên máy chủ:
xauth info
Điều này sẽ hiển thị 'tệp quyền' sẽ được sử dụng (/root/.Xmasterity theo mặc định, cho root hoặc một cái gì đó như /home/theuser/.Xmasterity). Nếu nó hiển thị tệp .Xmasterity chính xác thì bạn không phải lo lắng về biến môi trường XAUTHORITY thực sự (thực ra, tôi sẽ không biết khi nào nó sẽ không, trừ khi bạn muốn thao tác một vị trí không chuẩn của tệp đó ).
Xóa tệp đó (nếu nó còn tồn tại):
rm /root/.Xauthority
Thay thế /root/.Xauthority
bằng tệp XAUTHORITY chính xác cho trường hợp của bạn.
Tạo lại nó, nhưng trống rỗng (điều này là cần thiết cho rất nhiều lệnh):
touch /root/.Xauthority
Tại thời điểm này, bạn sẽ nhận được lỗi Không có giao thức được chỉ định , ngay cả khi bạn đã nhận MIT-MAGIC-COOKIE-1 không hợp lệ trước đó. Tìm tệp quyền mà máy chủ X đang sử dụng tại thời điểm này:
ps aux | grep Xorg
Điều này sẽ hiển thị một cái gì đó như:
root 1153 0.0 1.0 149560 44464 tty7 Ss+ dec02 0:00 /usr/lib/xorg/Xorg -nolisten tcp -auth /var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711} -background none -noreset -displayfd 17 vt7
Tên tệp sau -auth
là những gì bạn cần trong lệnh tiếp theo. Chạy cái này với quyền root:
sudo xauth -f '/var/run/sddm/{ef18c483-7891-4e82-80ef-2c8f9bd79711}' list
Nó liệt kê một khóa thập lục phân 32 chữ số. Ví dụ: đầu ra có thể là:
hostname/unix:0 MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
Sử dụng điều đó để tạo tệp .Xmasterity của bạn (với tư cách là người dùng cần đăng nhập lại):
xauth add $DISPLAY MIT-MAGIC-COOKIE-1 c0eaf749aa252101a0f57d5087089db7
thay thế 'c0eaf749aa252101a0f57d5087089db7' bằng lệnh danh sách trả về cho bạn. Bây giờ .Xmasterity của bạn phải có kích thước 51 byte và bạn có thể kết nối với máy chủ X (một lần nữa).