[OpenSSH]

OpenSSH FAQ (Часто задаваемые вопросы)


1.0 Что такое OpenSSH?

2.0 - Общие вопросы

3.0 - Вопросы по поводу портированной версии OpenSSH


1.0 - Что такое OpenSSH?

1.1 - Что такое OpenSSH и где я могу скачать её?

OpenSSH представляет из себя замену таких приложений как telnet, rlogin, и ftp. В отличие от них, OpenSSH никогда ничего не передает по сети в незашифрованном виде (тем более логин и пароль), и всегда, перед тем как устанавить новое соединение, проверяет подлинность пользователя (включая аутентификацию машины), чтобы обеспечить более надежное и защищенное от прослушивания соединение.

Проект OpenSSH включает в себя ssh(1), которая заменяет rlogin и telnet, и scp(1), которая заменяет rcp(1) и ftp(1). В OpenSSH также добавленны sftp(1) и sftp-server(8), которые обеспечивают простую передачу файлов. Это основано на secsh-filexfer IETF проекте.

OpenSSH состоит из следующих программ:

Загрузка

Самая последняя версия OpenSSH включена в текущий дистрибутив OpenBSD (устанавливается как часть базовой системы).

Сегодня большинство других операционных систем включают некоторые версии OpenSSH, так что большинство пользователей могут сразу же ее использовать. Однако, иногда включаются довольно старые версии, которые могут не поддерживать последние функции OpenSSH. В этом случае вы можете установить текущую версию в используемой вами операционной системе, даже если последняя версия не поддерживается дистрибьютером. Вы также можете использовать OpenSSH во встроенных приложениях.

Пользователи других операционных систем должны загрузить и собрать (compile and install) мультиплатформенную портированную версию с наших зеркал.

1.2 – Почему стоит использовать именно её?

OpenSSH это набор инструментов для обеспечения безопасных сетевых подключений. Вот список поддерживаемых возможностей:

В настоящее время почти все системы связи в компьютерных сетях не шифруются. Как следствие, любой, кто имеет доступ к компьютеру, подключенному к сети, может подключиться к любому каналу связи. Это делают хакеры, любопытные администраторы, работодатели, преступники, шпионы (промышленный шпионаж), а также правительство. В следствии электромагнитного излучения, данные из некоторых каналов связи могут быть перехваченны даже на расстоянии.

Когда вы входите в систему (логинитесь), пароль передается по сети в виде обычного текста. Таким образом, любой "слушатель" может использовать ваш ​​аккаунт (учетную запись), чтобы делать, что захочет. Это происходит постоянно по всему миру. Крэкеры запускают программы на рабочих станциях без ведома их владельцев, просто прослушивают сеть и собирают пароли. Программ для этого полным-полно в интернете, или они могут быть написанны компетентным программистом в течение нескольких часов

Компании имеют коммерческие тайны, патентные заявки, информацию о ценах, данные о клиентах, данные о персонале, финансовую информацию и т.д. В настоящее время любой человек с доступом к сети (с любого компьютера в сети) может слушать все, что происходит в интернет.

Многие компании не знают, что информация может быть так легко вытянута ​​из сети. Они верят, что их данные надежно защищены, поскольку никто не знает, что они передают конфиденциальную информацию, или просто потому, что так много другой информации передается через сеть. Это не самый лучший подход к политики информационной безопасности.

1.3 - Какие операционные системы поддерживаются?

Несмотря на то, что OpenSSH разрабатыватеся главным образом на OpenBSD, существует много портов и для других ОС. Проект портированной версии OpenSSH возглавляет Damien Miller. Загляните на страницу http://www.openssh.com/portable.html для знакомства с этой версией OpenSSH. В список поддерживаемых ОС входят:

Список дистрибьютеров, которые включают OpenSSH в свои системы, вы можете найти на этой странице.

1.4 - Что на счет copyrights, лицензий и патентов?

Разработчики стараются сохранить OpenSSH без какихо-либо патентых или авторских проблем. Чтобы оставаться свободной для всех, поддержка некоторых функций не может быть включена в OpenSSH (например, поддержка запатентованных алгоритмов шифрования).

OpenSSH не поддерживает никаких патентованных алгоритмов транспортного уровня. При использовании SSH1 доступны только 3DES и Blowfish. При использовании SSH2 вы можете использовать только 3DES, Blowfish, CAST128, ArcFour и AES. Запатентованный алгоритм IDEA естественно не поддерживается.

OpenSSH обеспечивает поддержку протоколов SSH1 и SSH2.

С тех пор как патент на RSA истек, нет никаких ограничений на использование RSA-алгоритма, включая OpenBSD.

1.5 - Где я могу получить поддержку?

Есть много мест, где можно получить помощь. В дополнение к основному сайту OpenSSH, существует множество списков рассылки. Прежде чем слать письма с вопросами, поищите пожалуйста ответ в архиве рассылки. Существует большая вероятность того, что этот вопрос уже обсуждался, и ответ на него давно уже найден. Письма из рассылки находится в архиве, а чтобы поиск по нему был еще проще, существует система marc.info.

Для получения дополнительной информации о списках рассылки проекта OpenSSH, загляните на эту страницу.

1.6 - Я нашел ошибку. Где и как я могу сообщить о ней?

Информацию об отправке багрепортов (сообщений об ошибках) вы можете найти на старнице Как сообщить об ошибке в OpenSSH.

Если вы хотите сообщить об ошибке так или иначе связанной с безопасностью, свяжитесь с разработчиками через рассылку openssh@openssh.com.

2.0 - Общие вопросы

2.1 - Почему ssh/scp используют низкие номера портов? Мой фаервол блокирует их.

Клиент OpenSSH использует низкие номера портов для rhosts- и rhosts-rsa-аутентификации, поскольку сервер "доверяет" имени пользователя, предоставленным клиентом. Чтобы обойти это, вы можете добавить в ssh_config- или ~/.ssh/config-файлы эту строку:

UsePrivilegedPort no

Или вы можете использовать параметр -o во время запуска ssh(1) из консоли:

$ ssh -o "UsePrivilegedPort no" host.com

2.2 - Почему для ssh-клиента установлен setuid root?

Как мы только что сказали в вопросе 2.1, чтобы иметь возможность использовать низкие номера портов для rhosts-аутентификации, OpenSSH необходимы права root. Использование привилегированных портов (с низкими номерами) также требуется для rhosts-rsa-аутентификации в более старых версиях SSH.

Кроме того, для rhosts-rsa-аутентификации (в первой версии протокола) и hostbased-аутентификации (во второй версии), SSH-клиенту необходим доступ к секретному ключу (private host key) для проверки подлинности клиентской машины на сервере. Для этого OpenSSH (версии 3,3 и более ранние) нужен установленный setuid root для файла ssh. В принципе, если вы не собираетесь использовать эти методы аутентификации, вы можете убрать его.

Начиная с OpenSSH версии 3.3, для файла ssh setuid-бит не установлен по умолчанию. Связанно это с тем, что ssh-keysign, который используется для доступа к приватному ключу (private hosts keys), и ssh не используют привилегированных портов (портов с низкими номерами) по умолчанию. Если вы хотите использовать привилегированный порт, вы должны вручную установить setuid-бит для ssh.

2.3 - Почему SSH 2.3 и OpenSSH 2.1.1 вместе работают некорректно?

SSH версии 2.3 (и более ранние) имеет проблему с реализацией HMAC. Их код не поставляет полный блок данных из digest, а вместо этого всегда предоставляет 128 бит. Если же используются более длинные digests, то это приводит к конфликтам SSH 2.3 и OpenSSH.

OpenSSH 2.2.0 видит, что SSH 2.3 имеет эту проблему. В последних версиях SSH эта ошибка исправлена. Если же вы по той или иной причине используете SSH 2.3, то просто добавьте в /etc/sshd2_config эту строчку:

Mac hmac-md5

2.4 - Почему я получаю сообщение об ошибке "dispatch protocol error: type 20"?

Были замечены проблемы взаимодействия, и причиной тому является отсутствие поддержки "session rekeying" в старых версиях OpenSSH. Однако коммерческие реализации SSH 2.3 договорились по поводу поведения работы этой функции, что и приводит таперь либо к потери связи, либо к ошибке Dispatch protocol error: type 20 . Чтобы решить эту проблему, обновитесь до последней версии OpenSSH, или отключите поддержку "session rekeying", добавив следующие строки в конфиг файлы (ssh2_config или sshd2_config) вашего SSH 2.3:

RekeyIntervalSeconds 0

2.5 - Старая версия коммерческой SSH шифрует host-ключи при помощи IDEA.

Старые версии SSH использовали запатентованный алгоритм для шифрования /etc/ssh/ssh_host_key. Это привело к проблеме, которая заключатеся в том, что sshd(8) не может прочитать хост-ключ (host key). Чтобы решить эту проблему, воспользуйтесь командой, которая сконвертирует ваши ssh_host_key с целью использования 3DES. ПРИМЕЧАНИЕ: Используйте ssh-keygen(1) из коммерческой SSH-реализации, а *НЕ* из OpenSSH, как в примере ниже.

# ssh-keygen -u -f /etc/ssh/ssh_host_key

2.6 - Что означают эти предупреждения о длине ключа?

Коммерческая ssh-keygen(1) содержала ошибку, из-за которой он время от времени генерировал ключи для аутентификации (RSA или DSA), которые не устанавливали (unset) по умолчанию Most Significant Bit (MSB). Такие ключи рекламировались как ключи во всю длину (full-length), но на самом деле они были в 2 раза короче.

OpenSSH будет выводить предупреждения при обнаружении таких ключей. Чтобы избавить себя от этих сообщений, отредактируйте свой known_hosts и замените неправильную длину ключа (обычно это 1024) на правильную (1023).

2.7 - X11 и/или агент-переадресации не работают.

Проверьте ваши ssh_config и sshd_config. Файлы конфигурации по умолчанию отключают агента аутентификации и X11-перенаправление (X11 forwarding). Чтобы включить ее, добавьте следующее в sshd_config:

X11Forwarding yes

а эти строки добавьте в ssh_config:

ForwardAgent yes
ForwardX11 yes

Для X11-перенаправления требуется рабочий бинарник xauth(1). В OpenBSD он входит в набор файлов xbase, но, вероятно, в других системах нужен будет другой пакет. Для портированной версии OpenSSH xauth долен быть либо найден во время установки/конфигурации или указан с помощью XauthLocation в sshd_config(5) и ssh_config(5).

По поводу агентов: есть два разных и несовместимых агента, ускоряющих механизмы работы протокола SSH2. OpenSSH всегда использовал расширение оригинальных запросов SSH1-агента, однако некоторые коммерческие продукты используют другой, закрытый (non-free) протокол перенаправления. Это значит, что агент перенаправления не может быть использован между OpenSSH и этими продуктами.

ПРИМЕЧАНИЕ: Для пользователей Linux Mandrake 7.2: Mandrake менят переменную XAUTHORITY из файла /etc/skel/.bashrc и таким образом домашний каталог любого Bash-пользователя в системе. Эта переменная меняет поведение OpenSSH и для любой из вышеперечисленных вариантов, если вы хотите получить рабочую систему, раскомментируйте строку:

# export XAUTHORITY=$HOME/.Xauthority

2.8 - После обновления OpenSSH не работает поддержка SSH2.

Файлы конфигурации sshd_config или ssh_config могут меняться от версии к версии. Вы всегда должны проверять эти файлы при обновлении OpenSSH. После 2.3.0 версии OpenSSH вам нужно добавить следующие строки в ваш sshd_config:

HostKey /etc/ssh_host_dsa_key
HostKey /etc/ssh_host_rsa_key

2.9 - sftp/scp не устанавливают соединение, хотя ssh работает нормально.

Используя sftp и/или scp связь может оборваться, если у вас есть shell-конфиг (.profile, .bashrc, .chsrc etc.), который показывает вывод и не интерактивных shell-сеансов (non-interactive sessions). Этот вывод и является причиной проблемы. Проверить настройки вашего shell можно этой командой:

ssh yourhost /usr/bin/true

Если эта команда что-то выводит, вы должны изменить настройки вашей shell-оболочки.

2.10 - Будет ли добавлена [foo] в scp?

Короткий ответ: нет.

Длинный ответ: scp не стандартизирован. В спецификации указывается, что именно "делает rcp". Так как команда используется на обоих концах соединения, то добавление новых функций или опций является риском нарушения совместимости с другими реализациями.

Практически вся функциональность, которую мы хотели реализовать, уже добавленна в sftp. Протокол, на основе которого создается реализация, стандартизован, поэтому изменение в реализации может отразиться и на совместимости клиента с сервером.

2.11 - Как использовать перенаправление портов (port forwarding)?

Если удаленный сервер работает под управлением sshd(8), то вы можете построить 'туннель' через ssh. Например, это неплохая идея использовать туннель для небезопасных POP или SMTP соединений (даже если программное обеспечение не поддерживает работу с зашифрованными каналами связи). Туннелирование использует перенаправление портов, чтобы создать соединение между клиентом и сервером. Клиентское программное обеспечение должно иметь возможность использовать нестандартный порт для подключения.

Идея состоит в следующем: пользователь подключается к удаленному компьютеру (через ssh) и указывает порт, который должен быть использован на клиентской машине для переадресации подключения к серверу. После этого, на клиентской машине можно запустить сервис, соединение с которым должно быть зашифровано (например, Fetchmail, IRC), указав тот же локальный порт. Соединение, настроенное таким образом, будет ничем иным как туннелем через ssh. По умолчанию, соединение будут обслуживать запросы только от этого пользователя.

Самые важные опции для настройки туннелирования являются -L и -R, которые позволяют пользователю создать соединение; -D, которая позволяет использовать динамическое перенаправление портов; -g, которая позволяет другим хостам использовать это соединение/порт; -F, которая запускает ssh в фоновом режиме после авторизации. Для получения более подробной информации ознакомьтесь с man-страницей ssh(1).

Это пример туннелирования IRC-сеанса связи от клиента с адесом 127.0.0.1 (localhost) с удаленным сервером "server.example.com":

ssh -f -L 1234:server.example.com:6667 server.example.com sleep 10
irc -c '#users' -p 1234 pinky 127.0.0.1

Соединение, созданное в этом примере, является туннелем подключения к IRC-серверу "server.example.com", каналу "#users", используя ник "pinky". Локальный порт, используемый в данном примере, - 1234. Не имеет значение какой именно порт используется, если этот порт больше 1023 (не забывайте, что только root может создавать соединения используя для этого привилегированные порты), и он не конфликтует с любым другим портом, который уже используется. Соединение будет передано на порт 6667 на удаленном сервере, так как это стандартный порт для IRC.

Команда "sleep 10" используется для задержки перед созданием/установкой туннеля. Дело в том, что если в течении определенного времени никаких соединений созданно не будут, то ssh будет закрыт (ssh will exit). Если требуется больше времени (более длинная задержка), значение, передаваемое sleep(1), можно увеличить. Для более подробной информации о функциях, доступных в вашем shell, смотрите ksh(1) и csh(1).

ssh также имеет опцию -N, которую удобно использовать для переадресации портов: если -N не указано, то нет необходимости указывать удаленные команды ("sleep 10" в нашем примере). Однако, использование этой опции заставляет ssh ждать (в отличие от выхода после того, как удаленная команда будет завершена), и пользователь должен позаботиться, чтобы вручную завершить (kill(1)) процесс впоследствии.

2.12 - Мое SSH-соединение зависает или обрывается после N минут бездействия.

Как правило, причиной тому может являться пакетный фильтр PF или NAT-устройство, которые "timing out" ваше TCP-соединение из-за неактивности. Вы можете включить ClientAliveInterval в sshd_config (на стороне сервера), или ServerAliveInterval в ssh_config (клиентская сторона) (последний доступен в OpenSSH версии 3.8 и более новых).

Включение того или иного варианта и настройка интервала меньше, чем время, необходимое для тайм-аута сеанса, гарантирует, что связь не оборвется по этой причине.

2.13 - Как я могу использовать scp для копирования файлов, в имени которых есть двоеточие?

scp будет интерпретировать часть перед двоеточием как имя удаленного сервера и попытается подключиться к нему. Чтобы этого избежать, используйте относительный или абсолютный путь, например:
$ scp ./source:file sshserver:

2.14 - Почему OpenSSH показывает свою версию клиенту?

OpenSSH, как и большинство реализаций SSH, показывает при подключении клиенту свое название и версию, например:

SSH-2.0-OpenSSH_3.9

Эта информация используется клиентом и сервером с целью установки соединения, использующего совместимые протоколы, т.е. чтобы избежать различий в реализации, багов или просто отсутствующих возможностей. Эта функция проверки протоколов нужна для проверки совместимости версий, потому что старые версии, не поддерживающие многие возможности, реализованные в последних версиях, все еще широко используются.

3.0 - Вопросы по поводу портированной версии OpenSSH

3.1 - Стрaнные сообщения в лог-файлах по поводу PAM-аутентификации.

Портированная версия OpenSSH будет генерировать ложные сообщения о неудачной попытке аутентификации при каждом входе, похожие на:

"authentication failure; (uid=0) -> root for sshd service"

Они создаются по причине того, что OpenSSH сначала пытается определить, должен ли пользователь аутентифицироваться для входа в систему (например, пустой пароль). К сожалению PAM любит регистрировать все события, связанные с аутентификацией, и это сообщение не является исключением.

Если это вас раздражают эти сообщения, или их просто слишком много, установите "PermitEmptyPasswords no" в sshd_config. Это отключит регистрацию ошибок по поводу входа в систему, если пароль не установлен. Это значение установленно по умолчанию, если вы используете прилагаемый файл sshd_config.

3.2 - Не допускается использование пустых паролей при PAM-аутентификации.

Чтобы разрешить использование пустых паролей при PAM-аутентификации необходимо добавить флаг "nullok" в конец "password checking module" в файл /etc/pam.d/sshd. Например:

auth required/lib/security/pam_unix.so shadow nodelay nullok

Это должно быть сделано в дополнение к установке "PermitEmptyPasswords yes" в файле sshd_config.

Существует одно предостережение по поводу использования пустых паролей PAM-аутентификации: будет разрешен любой пароль для аутентификации той или иной учетной записи с пустым паролем. Это сломает проверку, которую использует sshd(8), чтобы определить, установлен ли для этого аккаунта пароль вообще, независимо от политики, определенной с помощью PermitEmptyPasswords. По этой причине, рекомендуется не добавлять nullok-директиву в ваш конфигурационный файл, если вы не хотите использовать пустые пароли.

3.3 - ssh(1) нужно много времени, чтобы подключиться или войти в систему.

Большие задержки (более 10 секунд), как правило, вызваны проблемами с разрешением имен:

Задержки менее 10 секунд могут иметь другие причины.

На сколько медленно значит "медленно"?

В нормальных условиях скорость процесса ssh-авторизации зависит от скорости процессора клиента и сервера. Для сравнения ниже приведены примеры соединений для time ssh localhost true, при использовании 1024-битного RSA-ключа. OpenSSH и OpenSSL были собраны при помощи gcc 3.3.x.

CPUВремя (SSHv1)[1] Время (SSHv2)
170MHz SPARC/sun4m0.74 сек1.25 сек
236MHz HPPA/8200[2]0.44 сек 0.79 сек
375MHz PowerPC/604e0.38 сек0.51 сек
933MHz VIA Ezra0.34 сек0.44 сек
2.1GHz Athlon 2600+0.14 сек0.22 сек

[1] Протокол SSHv1 быстрее, но в плане криптостойкости слабее, чем SSHv2.
[2] На момент написания статьи, gcc генерирует относительно медленный код для HPPA для RSA и операций Диффи-Хеллмана (смотрите gcc bug #7625 и обсуждение в рассылке openssh-unix-dev).

3.4 - Сообщение "Can't locate module net-pf-10" в лог-файлах Linux.

Ядро Linux пытается подключить (при помощи modprobe) модуль, для семейства протоколов 10 (IPv6). Либо загрузите соответствующий модуль ядра, добавив адрес к модулю в файл /etc/modules.conf, или отключите IPv6 в /etc/modules.conf.

По непонятным причинам файл /etc/modules.conf может называться /etc/conf.modules.

3.5 - Не работает аутентификация при использовании пароля (например, на Slackware 7.0 или Red Hat 6.x)

Если пароль правильный, но войти в систему все равно не получается, скорее всего дело в том, что система настроена на использование MD5-типа паролей, но crypt(3)-функция, используемая sshd, не понимает их.

Информация о таких учетных записях в файлах /etc/passwd или /etc/shadow будет начинаться с $1$. Если сбой аутентификации (проверки подлинности пароля) просходит для новых учетных записей, или для которых недавно был изменен пароль, но при этом старые учетные записи будут работать по-прежднему (пользователи по-прежднему могут входить в систему без проблем), то это (использование MD5-типа паролей) скорее всего и является причиной проблемы.

Основной причиной являются некоторые версии OpenSSL, которые используют crypt(3)-функции, которые не понимают MD5-пароли. Можно попоробовать настроить OpenSSH, но не всегда эти попытки являются успешными.

Итак, есть несколько вариантов решений:

3.6 - Configure или sshd(8) жалуются на отсутствие поддержки RSA или DSA.

Убедитесь, что ваша OpenSSL-библиотека была собрана с поддержкой RSA или DSA (внутренне или при помощи RSAREF).

3.7 - Ошибка "scp: command not found"

scp(1) должена быть в стандартном PATH-пути по умолчанию на клиенте и сервере. Возможно, вам придется использовать опцию --with-default-path для поиска пути на сервере. Эта опция перезаписывает PATH, который используется по умолчанию, поэтому вам нужно указать все текущие каталоги на вашем пути, как и где вы установили scp. Например:

$ ./configure --with-default-path=/bin:/usr/bin:/usr/local/bin:/path/to/scp

Обратите внимание, что конфигурация администратора сервера будет иметь более высокий приоритет, чем изменения при помощи опции --with-default-path. Это будет включать в себя PATH в /etc/profile, PATH в /etc/environment в AIX, или (для 3.7p1 и выше) установка PATH или SUPATH в /etc/default/login в Solaris или Reliant Unix.

3.8 - Passphrase не может быть прочитана.

В некоторых ОС устанавлен неправильный режим для /dev/tty, в результате чего чтение паролей происходит неправильно, и мы получаем следующую ошибку:

You have no controlling tty. Cannot read passphrase.

Решением этой проблемы будет перенастройка /dev/tty в режим 0666, а также написание отчета об ошибке дистрибьютеру вашей ОС.

3.9 - Нет 'configure' или поломан "make"

Если в архиве, который вы скачали, нет 'configure'-файла, или "make" при попытке сборки выдает ошибку "missing seperator", вы, вероятней всего, скачали OpenSSH версию для OpenBSD и пытается скомпилировать её на другой платформе. Пожалуйста, загляните на страницу портированной версии.

3.10 - ssh зависает при выходе

OpenSSH может зависнуть при выходе. Это может произойти, когда запущен активный процесс в фоновом режиме. Это, как известно, происходит в Linux и HP-UX. Проблема может быть проверена, выполнив следующие действия:

$ sleep 20 & exit
Попробуйте использовать вместо этого:
$ sleep 20 < /dev/null > /dev/null 2>&1 &

Решением этой проблемы для bash-пользователей будет добавление "shopt -s huponexit" в /etc/bashrc или ~/.bashrc. В противном случае, обратитесь к man-странице вашей shell-оболочки, чтобы выяснить как включить отправку HUP-сигнала для активации запущенных процессов. См. bug #52, где описываются некоторые другие обходные пути.

3.11 - Почему происходит зависание ssh при выходе?

При запускке

$ ssh host command
ssh должен зависнуть, потому что он ожидает некоторую информацию от запущенного процесса. Другими словами, ssh зависает:

3.12 - X11 forwarding перестал работать после обновления OpenSSH до версии 3.1.

Начиная с OpenSSH 3.1, sshd сервер X11-переадресации (X11-forwarding server) слушает localhost по умолчанию; см. sshd опцию X11UseLocalhost для настройки его поведения (вернуться к конфигурации, которая была до обновления), если ваши старые X11-клиенты не работают с этой конфигурацией.

Вообще, X11-клиенты, использующие X11 R6, должны работать с настройками по умолчанию. Некоторые производители, включая HP, используют X11-клиены с R6- и R5-библиотеками, поэтому некоторые клиенты будут работать, а некоторые нет. Это также касается и HP-UX 11.X.

3.13 - После обновления перестали работать некоторые X11 программы.

Как указано в информации к релизу 3.8, ssh теперь использует "untrusted X11 cookies" по умолчанию. Его предыдущее поведение может быть восстановлено путем установки опции ForwardX11Trusted yes в файле sshd_config.

Возможные ошибки, связанные с этим:
BadWindow (invalid Window parameter)
BadAccess (attempt to access private resource denied)
X Error of failed request: BadAtom (invalid Atom parameter)
Major opcode of failed request: 20 (X_GetProperty)

3.14 - После добавления открытого ключа (public key) в authorized_keys авторизация все равно не работает.

Обычно это связано с правами доступа к файлам в $HOME, $HOME/.ssh или $HOME/.ssh/authorized_keys, которые более "доступные", чем sshd позволяет по умолчанию.

В этом случае, это может быть решено при помощи выполнения следующих команд на сервере.

$ chmod go-w $HOME $HOME/.ssh
$ chmod 600 $HOME/.ssh/authorized_keys
$ chown `whoami` $HOME/.ssh/authorized_keys

Если это невозможно по той или иной причине, то альтернативым методом будет добавление StrictModes no в файл sshd_config, однако к этому методу прибегать не рекомендуется.

3.15 - Версии OpenSSH и поведение PAM (Pluggable Authentication Modules)

Портированная версия OpenSSH имеет опцию, которая может быть установленна на этапе конфигурирования с целью использования PAM (Pluggable Authentication Modules).
./configure --with-pam [Optionen]
Для полноценного использования PAM, эта опция должна быть использована во время сборки. Поведение во время выполнения, при сборке с PAM, варьируется в зависимости от версии портированных OpenSSH, а в более поздних версиях она также должна быть включена установкой опции UsePAM как yes в файле sshd_config.

Поведение соответствующих вариантов аутентификации PAM (при включении её поддержки во время сборки) кратко показано в следующей таблице.

Версия UsePAM PasswordAuthentication ChallengeResponseAuthentication
<=3.6.1p2 Не поддерживается Используется PAM Используется PAM, если включена PAMAuthenticationViaKbdInt
3.7p1 - 3.7.1p1 По умолчанию - yes Не используется PAM Используется PAM, если включена UsePAM
3.7.1p2 - 3.8.1p1 По умолчанию - no Не используется PAM [1] Используется PAM, если включена UsePAM
3.9p1 По умолчанию - no Используется PAM, если включена UsePAM Используется PAM, если включена UsePAM

[1] Некоторые дистрибьютеры, такие как например RedHat/Fedora, перенесли PasswordAuthentication из версии 3.9p1 в свой 3.8x пакет. Если вы используете пакет, предоставленный тем или иным дистрибьютером, ознакомьтесь с документацией касательно используемых им опций по умолчанию.

Портированная версия OpenSSH все еще имеет проблемы с некоторыми PAM-модулями, однако мы надеемся, что в будущем ситуация улучшится. На момент 3.9p1-релиза известными проблемами являются:

Вы можете также ознакомиться с известными PAM-багами.

3.16 - Почему "w" или "who" на AIX 5.x не показывает пользователей, вошедьших в систему через ssh?

Между AIX 4.3.3 и AIX 5.x есть различия в формате wtmp-структуры. Она сильно изменилась. Это означает, что бинарники ssh, созданные в AIX 4.x не смогут корректно работать в AIX 5.x. Это можно исправить путем простой перекомпиляции sshd демона в системе AIX 5.x.
OpenSSH www@openbsd.org
$OpenBSD: faq.html,v 1.4 2013/01/12 07:47:15 ajacoutot Exp $