Là root, tôi đang kết nối với một máy chủ từ xa để thực thi một lệnh. Chỉ "người dùng chuẩn" có tệp id thích hợp và .ssh / config chính xác, vì vậy tôi sẽ chuyển người dùng trước:
su standarduser -c 'ssh -x remotehost ./remotecommand'
Lệnh hoạt động tốt, nhưng mặc dù thực tế là tôi đã sử dụng "-x" (tắt X11-Forwarding) và tắt X11Forwards /etc/ssh/ssh_config
, tôi vẫn nhận được thông báo lỗi:
X11 connection rejected because of wrong authentication.
Tôi không nhận được thông báo lỗi khi tôi đăng nhập với tư cách là "người dùng chuẩn".
Điều này khá khó chịu vì tôi muốn tích hợp lệnh trong tệp công việc định kỳ. Tôi hiểu rằng thông báo lỗi đề cập đến xác thực sai của tệp .XAuth của root, nhưng tôi thậm chí không cố gắng kết nối qua X11.
Tại sao "ssh -x" không tắt kết nối X11 và ném thông báo lỗi?
CẬP NHẬT : Thông báo chỉ hiển thị khi tôi đăng nhập trong màn hình, khi sử dụng lệnh được nêu ở trên trên chính máy cục bộ (không có màn hình), tôi không nhận được thông báo lỗi, vì vậy điều này cũng tốt với cron .
Tôi cũng đã bắt đầu lệnh tương tự với -v
và thật bất ngờ khi nhận được thông báo lỗi FIRST, ngay cả trước thông tin trạng thái từ SSH:
root@localhost:~# su standarduser -c 'ssh -x remotehost ./remotecommand'
X11 connection rejected because of wrong authentication.
OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013
Điều này dẫn tôi đến vấn đề, nó KHÔNG phải ssh
là thông báo lỗi, đó là su
:
root@localhost:~# su standarduser -c 'echo Hi'
X11 connection rejected because of wrong authentication.
Hi
Tại sao tôi chỉ nhận được lỗi này trong screen
? Làm thế nào tôi có thể vô hiệu hóa thông báo lỗi này?
-v
vào các tùy chọn ssh, sau đó dán đầu ra vào câu hỏi của bạn.