У меня есть сервер CentOS 6.5 со следующей ситуацией:
Я могу использовать ssh для пользователя root этого сервера с компьютера Mac OS X. Он подключается относительно быстро и позволяет мне запускать сеансы xterm.
Я могу использовать ssh для другой учетной записи на этом же сервере с того же компьютера Mac OS X, но подключение занимает некоторое время и не позволяет мне запускать сеансы xterm (с довольно распространенной ошибкой xterm Xt: не удается открыть дисплей: localhost: ошибка 10.0).
У меня проблемы с тем, почему root работает идеально, а мой другой пользователь - нет. Другими словами, 1. Почему пользователь "root" быстро устанавливает соединение по ssh, а другой мой пользователь ("wmsodbc") - нет? 2. Почему пользователь "root" позволяет мне запускать окна xterm, а другой пользователь - нет?
Обратите внимание, что я подключаюсь к машине оба раза одинаково, с одной и той же конфигурацией ssh. Единственное, что меняется - это пользователь («ssh root @ server» или «ssh wmsodbc @ server»).
Я предполагаю, что это проблема с одним из следующих, но я не знаю, как определить, что:
Обратите внимание, что я скопировал этого пользователя (wmsodbc) напрямую с другого, более старого сервера RedHat Enterprise, и у меня вообще нет этой проблемы на этом сервере.
Кроме того, я думаю, что действительно нашел причину «более медленного соединения», когда я включил отладку -vvv при подключении ssh: время ожидания xauth истекает, когда он пытается заблокировать файл. Я все еще не против помощи по этому вопросу, но я также собираюсь поискать, почему истекает время ожидания xauth - я вижу много ссылок на эту проблему через Google.
Хорошо, я наконец нашел проблему. Это было связано с SELinux. Если у вас когда-либо возникнут подобные проблемы, простой тест - это "setenforce 0", чтобы временно отключить его. Если он работает, когда "setenforce 0", но не работает с "setenforce 1", то проблема связана с какой-то проблемой, связанной с SELinux. В моем случае мне пришлось выполнить следующую команду:
chcon 'unconfined_u:object_r:user_home_dir_t:s0' $HOME
Это было трудно увидеть, потому что мой "/ home / wmsodbc" на самом деле был ссылкой на другое место:
lrwxrwxrwx. wmsodbc wms unconfined_u:object_r:home_root_t:s0 /home/wmsodbc -> /other/wmsodbc
drwx--x--x. wmsodbc wms unconfined_u:object_r:user_home_dir_t:s0 /other/wmsodbc
Может быть, это хорошо кому-нибудь.