Устранение неполадок SSH и NX У меня есть работающее SSH-соединение с использованием ключа RSA. Беда в NX сервере хочет параметр sshd_config AuthorizedKeysFile
для установки в установленный файл NX, /var/lib/nxserver/home/.ssh/authorized_keys2
. После того, как я внес это изменение, удаленное соединение SSH не могло быть авторизовано. Я попытался,
~/.ssh
в этот / var ... файл. nx
, группа root
и 644 разрешения, поэтому я добавил параметры AllowUsers
и AllowGroups
с обоими аккаунтами до конца sshd_config
.К сожалению, ssh не разрешает это соединение.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Если я изменю sshd_config
AuthorizedKeysFile
вернемся к исходным настройкам, тогда все будет в порядке. Итак, по какой причине sshd не принимает авторизованный ключевой файл, который хочет NX?
Здесь есть несколько сбивающих с толку вопросов. Например, authorized_keys2 был обесценившийся? Не то эти парни заботились, потому что они обсуждают использование authorized_keys2 для NX через два года после первого сообщения.
Многие пользователи NX отмечают, что AuthorizedKeysFile - это только имя файла, но эта страница руководства sshd_config (то же, что и CentOS6) и говорит: «После расширения [токена] AuthorizedKeysFile принимается как абсолютный путь или путь относительно домашнего каталога пользователя». Путь NX должен быть в порядке, верно?
К сожалению, мой сервер CentOS поддерживает OpenSSH 5.3, потому что 6.2 (на моем клиенте) поддерживает список с разделением пробелами из AuthorizedKeysFile (ов).
Это вопрос F'd, так как после использования подсказки Кворра для тестирования sshd
остановив службу демона и запустив ее вручную в режиме отладки, путь, отличный от домашнего, будет работать просто найти (чего и следовало ожидать после "расширения токена") Извините, ребята.
Таким образом, отвечу на свой вопрос: нет, нет никаких причин, по которым authorized_keys не может находиться вне дома.
Во-первых, в таких условиях я всегда стараюсь максимизировать свои логи, запуская пользовательский unndaemonized sshd
:
sshd -d -p 11122 -f /new/config/file
И пытаюсь подключиться к нему:
ssh -v -p 11122 this.host
Это сделает вашу текущую конфигурацию безопасной и предоставит вам всю информацию о том, как было установлено соединение.
А теперь приходит дикая догадка. sshd
потребует, чтобы ключевые файлы были:
root
, wheel
, и пользователь, который входит в систему.По умолчанию используется файл в домашнем каталоге пользователя (см. Ниже). % H можно использовать явно, чтобы показать это. Здесь он показывает список, каждый путь разделен пробелом ...
Я бы попробовал изменить права доступа на 600. Это то, что у меня установлено в файле autorized_keys во всех моих учетных записях. Плохие разрешения переводятся в ошибку Permissions Denied. Это дает вам возможность убедиться, что ваш файл authorized_keys не содержит нежелательных дополнений, прежде чем исправлять его разрешения.
Если предполагается, что разные пользователи будут использовать одни и те же authorized_keys, то у вас проблема ...
AuthorizedKeysFile
Specifies the file that contains the public keys that can be used for user authentication. The format is described in the AUTHORIZED_KEYS FILE
FORMAT section of sshd(8). AuthorizedKeysFile may contain tokens of the form %T which are substituted during connection setup. The following
tokens are defined: %% is replaced by a literal '%', %h is replaced by the home directory of the user being authenticated, and %u is replaced by
the username of that user. After expansion, AuthorizedKeysFile is taken to be an absolute path or one relative to the user's home directory.
Multiple files may be listed, separated by whitespace. The default is “.ssh/authorized_keys .ssh/authorized_keys2”.