Через деякий час втрачений SSH-дисплей X11 з Linux на Mac втратив


10

У мене з’явилася нова і неприємна проблема з переадресацією ssh мого з'єднання X11 під час входу з Mac (10.7.2) на Linux (Ubuntu 8.04). У мене немає проблем із використанням ssh -X для входу на віддалену машину та запуску програми на основі X11 із цієї оболонки.

Нещодавно почалося це те, що додаткові виклики додатків X11 з тієї самої оболонки через деякий час (за порядком годин) не вдається запуститися, оскільки пересланий дисплей блокується (я припускаю). Наприклад, намагаючись запустити xterm, я отримую звичайне повідомлення про неправильну настройку DISPLAY, наприклад:

помилка xterm Xt: Не вдається відкрити дисплей: localhost: 10.0

Але додаток X11, який я запустив прямо під час входу в систему, все ще працює просто чудово, використовуючи такий же дисплей (localhost: 10.0), тільки що він був запущений раніше.

Я увімкнув багатослівний вхід у sshd_config і бачу це у файлі /var/log/auth.log у відповідь на невдалу спробу запуску xterm:

sshd [22104]: канал 8: відкрито не вдалося: адміністративно заборонено: відкрито не вдалося

Якщо я знову ssh -X на сервер, запускаючи нову оболонку і призначаючи новий дисплей (localhost: 11.0), повторюється той самий процес: програми X11, запущені рано, запускаються просто чудово, доки я триматиму їх відкритими (дні ), але через кілька годин я не можу запустити жодної нової з цієї оболонки.

Докладні відомості: OpenSSH sshd-сервер, що працює на Ubuntu 8.04, дисплей перенаправлений на Mac під управлінням Lion (10.7.2) з сервером Apple X за замовчуванням. Системи підключені до локальної мережі Ethernet з одним перемиканням між ними. Жодна машина не працює брандмауером. До недавнього часу (кілька днів тому) ця установка працювала ідеально, тому я загаданий питанням, де шукати далі. Я ні в якому разі не експерт X11 або SSH, але маю хороший досвід UNIX / Linux. Нічого очевидного не змінилося ні в конфігурації клієнта, ні в сервері, хоча я спробував змінити кілька варіантів, щоб спробувати налагодити це, як-от встановити TCPKeepAlive sshd_config на ні та встановити "хост + localhost" (ви можете сказати, що я гуглив).

Під час входу з ноутбука Linux 11.10 на той самий віддалений хост через одну і ту ж мережу та комутацію ця проблема не виникає - xterm можна успішно викликати через години з тієї ж оболонки входу в ssh, тоді як той же експеримент з Mac не вдається ( перевірено сьогодні вранці), тож, мабуть, це специфічна для Mac проблема.

Якщо "LogLevel DEBUG3" встановлений на віддаленій машині (sshd-сервері), і жодна зміна, внесена мною підключеннями клієнта, /var/log/auth.log показує незначну зміну у звітах про стан з'єднання протягом ночі, який використовується номером порту одним успішним сеансом ssh з машини Linux (я думаю), підключення №7 нижче:

sshd [20173]: debug3: канал 7: статус: відкриті такі з'єднання: \ r \ n # 0 сервер-сеанс (t4 r0 i0 / 0 o0 / 0 fd 14/13 cfd -1) \ r \ n # 3 З'єднання X11 від порту 127.0.0.1 57564 (t4 r1 i0 / 0 o0 / 0 fd 16/16 cfd -1) \ r \ n # 4 З'єднання X11 від порту 127.0.0.1 57565 (t4 r2 i0 / 0 o0 / 0 fd 17 / 17 cfd -1) \ r \ n # 5 З'єднання X11 від порту 127.0.0.1 57566 (t4 r3 i0 / 0 o0 / 0 fd 18/18 cfd -1) \ r \ n # 6 З'єднання X11 від порту 127.0.0.1 57567 (t4 r4 i0 / 0 o0 / 0 fd 19/19 cfd -1) \ r \ n # 7 З'єднання X11 від порту 127.0.0.1 59007

У цьому звіті все однакове між звітами про стан, за винятком номера порту, який використовується підключенням №7, і я вважаю, що це клієнт Linux - єдиний, який все ще підтримує відображуване з'єднання. Він продовжує зростати з часом, судячи з послідовності цих звітів протягом ночі.

Дякуємо за будь-яку допомогу,

-Майк


Я відчуваю ту саму проблему.
чурн

Я ввімкнув -vvv в команді ssh, щоб отримати інформацію про налагодження з сеансу ssh на стороні клієнта Mac. Я отримав це: codeВідхилено з’єднання X11 після закінчення терміну ForwardX11Timeout. ForwardX11Timeout - це можливість в ssh-клієнті Mac, яка обмежує переадресацію з ненадійного з'єднання. Потенційно використання -Y замість -X буде працювати. ForwardX11Timeout не зафіксований на сторінці ssh man від Lion. Її за замовчуванням виявляється 20 хвилин. Встановити його вище в ssh_config можливо, але сервер X Lion виходить з ладу, якщо встановлено> 596 годин ..., що за мілісекунди переповнює 31 біт. Arrgh. Сподіваюся, це це виправить.
mklein9

Відповіді:


13

Сеанси ssh почалися після того, як я змінив / etc / ssh_config клієнта Mac на включення рядка:

ForwardX11Timeout 596h

всі добре працюють і були цілий день. На сьогоднішній день всі вони відмовилися починати нові xterms. Тож я вважаю, що це відповідь, і, на щастя, просте рішення, але час від часу все-таки відбудеться через 3-1 / 2 тижні.


3

man ssh_config

ВпередX11 Довірено

Якщо для цього параметра встановлено значення "так", віддалені клієнти X11 отримають повний доступ до оригінального дисплея X11. Якщо для цієї опції встановлено значення "ні", віддалені клієнти X11 вважатимуться ненадійними та запобігти крадіжці або підробці даних, що належать надійним клієнтам X11. Крім того, маркер xauth (1), який використовується для сеансу, буде встановлено, що закінчується через 20 хвилин. Віддаленим клієнтам буде відмовлено у доступі після цього часу. За замовчуванням - "ні" Дивіться специфікацію розширення X11 SECURITY, щоб отримати детальну інформацію про обмеження, накладені на недовірених клієнтів.


1
Це може бути корисно, якщо ви розгорнете питання, чому ви думаєте, що ця опція конфігурації вирішить початкову проблему.
pjmorse

Це дійсно пояснює, чому проблема трапляється, але деякі міркування були б корисними.
Стефан Ласєвський

1

Щоб додати до "відповів 7 січня '12 о 0:11 mklein9 28129" "Ssh сесії розпочалися після того, як я змінив клієнт Mac / etc / ssh_config, щоб включити рядок:

ForwardX11Timeout 596h

... але час очікування все ж відбудеться через 3-1 / 2 тижні ».

Мабуть, ви можете використовувати 0, і це встановить тайм-аут до нескінченності (доки з'єднання не включено).

ForwardX11Timeout 0

...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.