Время от времени, когда пользователи SSH со своей рабочей станции OS X (Snow Leopard) на один из наших хостов Linux, они получают сообщение:
/usr/bin/xauth: ~/.Xauthority not writable, changes will be ignored
Конечно, их приложения с перенаправлением X не будут работать на этом этапе.
Однако, если они выйдут из системы и снова войдут в систему, они не получат сообщение и все будет работать должным образом.
На своем Mac они получают домашний каталог через AFP. Машины Linux получают его через NFS.
Есть идеи о том, что здесь может происходить?
Я не могу не задаться вопросом, видите ли вы состояние гонки, возможно, что-то вроде этого:
ssh
es в хост Linux, который монтирует дом, который смонтировал клиент OS X, но делает это через AFP.При другой попытке это может быть так:
1) они пытаются подключиться к известному хосту, а клиент OS X не должен записывать какую-либо информацию и не имеет доступа к .Xauthority, или 2) время истекло настолько, что две системы не пытаются использовать один и тот же файл одновременно [следовательно, это состояние гонки].
Я не уверен, как вы могли определить, так ли это. Я думаю, вы могли бы использовать fs_usage
команда на сервере (или инструмент с графическим интерфейсом, например fseventer), чтобы увидеть, осуществляется ли быстрый доступ к одному и тому же файлу, хотя это не обязательно что-либо доказывает.
Вы могли бы почерпнуть полезную информацию, используя lsof
, либо в файлах, либо в (lsof -i
) сетевые соединения. Возможно, вы можете включить ведение журнала для AFP и NFS (или использовать nfsstat
?) и перекрестные ссылки на них.
Я бы подумал о компиляции iftop, но все, что вы должны увидеть при его запуске, это то, что да, есть подключения к серверу как от клиента Mac, так и от клиента Linux, и они используют разные порты и передают информацию.
Я бы рекомендовал иметь тестового пользователя ssh для использования разных учетных записей на клиенте Mac и хосте Linux на некоторое время и посмотреть, возникнет ли у них проблема. Если это не так, то это как-то связано с использованием одной и той же учетной записи в двух местах одновременно (и, скорее всего, из-за двойного монтирования домашней папки).
Возможно, стоит посмотреть, сможете ли вы настроить OS X и Linux для использования разных копий файла Xauthority. (Я не уверен, что вы вообще можете это сделать).
Я бы также попробовал, чтобы тестовый пользователь получил доступ к своей домашней папке в OS X через NFS и посмотрел, имеет ли это значение.
Если бы это было когда-то давным-давно, запустив несколько десятков X-приложений через ssh. ssh использует xauth, который сам блокирует файл .Xauthority и просто выйдет из строя, если не сможет его заблокировать. Решили это тогда, изменив программу xauth, чтобы вместо этого вращать блокировку, но у меня больше нет патча.
Если для файла ssh_config не задан ForwardX11, возможно, вам придется использовать -X в команде ssh. I.E. видишь ли, если
ssh -X имя-машины
работает