Назад | Перейти на главную страницу

По какой причине sshd_config не может быть установлен в файл authorized_keys вне дома?

Устранение неполадок SSH и NX У меня есть работающее SSH-соединение с использованием ключа RSA. Беда в NX сервере хочет параметр sshd_config AuthorizedKeysFile для установки в установленный файл NX, /var/lib/nxserver/home/.ssh/authorized_keys2. После того, как я внес это изменение, удаленное соединение SSH не могло быть авторизовано. Я попытался,

К сожалению, 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 потребует, чтобы ключевые файлы были:

  1. Доступен и читается сервером.
  2. Доступно для записи только пользователю. А это значит, что все папки (/ var, / var / lib и т. Д.) не должно быть доступно для записи любым пользователем или группой, кроме 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”.