Главная > Програмное обеспечение > для Internet >
Ssh (Secure Shell) FAQ [5/6]

5. Проблемы.

Если вы хотите опубликовать bug report[сообщение об ошибке], отправьте письмо по адресу ssh-bugs@clinet.fi содержащее следующее:

  • Номер версии ssh и если отличаются - sshd
  • Что вы обнаружили в действиях ssh
  • Что ssh выполнил вместо положенного(включая сообщения обо всех ошибках)
  • Какую систему вы используете (например, вывод от uname -a), и вывод config.guess.
  • В случае проблем при компиляции, содержимое файла config.log (сгенерированного посредством configure)
  • Какой компилятор вы использовали и все флаги компиляции
  • Вывод произведенный от ssh -v
  • Вывод от sshd daemon запущенного в отладочном режиме, как sshd -d
Вы также должны попытаться проапгрейдить ssh любо до последней версии 1.2.x, либо 2.x если используете старую версию.

5.1 "ssh otherhost xclient &" не работает!

Нет, этого не может быть. Используйте вместо этого "ssh -f otherhost xclient", или "ssh -n otherhost xclient &" для совместимости с rsh.

5.2 Ssh сбоит в Solaris, вылетая с сообщением "Resource temporarily unavailable".

Что касается Solaris 2.4, это ошибки ядра. Получите и установите patch 101945-37 для предотвращения этой ошибки в дальнейшем. Заметьте, что в более ранних версиях 101945-36, кажется предотвращает эту ошибку.

Если вы обнаружили подобные проблемы в Solaris 2.5.1, просто установите более свежую версию ssh - 1.2.14 или еще свежее, это должно решить ваши проблемы.

5.3 Sshd зависает в Solaris 2.5!

Это проблемы кода разделяемой библиотеки Solaris, точнее отдельных функций nameserver'а.

Получите и установите патч 103187-02 (for x86, 103188-02) для решения этой проблемы. Данная проблема возможна решена в Solaris 2.5.1.

5.4 Перенаправление X11 не работает в случае выполнения SCO-binary под Linux в режиме iBCS2 эмуляции.

Для решения этой проблемы установите hostname в полной FQDN форме: hostname=name.domain. В некоторых дистрибутивах Linux в качестве hostname устанавливается только локальное имя машины.

5.5 Ssh не работает или ошибается в случае multi-homed hosts!

Проверьте возвращает ли gethostbyname() список возможных ip-address или только один адрес.(такое возможно например в случае, NIS/NIS+, когда в конфигурации системы задан поиск где первым стоит просмотр /etc/hosts в котором указан лишь один из возможных ip-addresses).

5.6 Userid swapping обрывается в AIX!

Это ошибка в AIX 3.2.5, о ней сообщено в APAR IX38941, и выпущены исправления U435001, U427862, U426915, и несколько других. Для детального ознакомления свяжитесь с вашим представительством IBM.

5.7 ssh-keygen вываливает в core под Alpha OSF!

В случае Alpha OSF/1 1.3.2, это ошибка родного компилятора при использовании с максимальной оптимизацией.

Отключите всю оптимизацию для ssh-keygen, или используйте gcc. Заметьте что Gcc 2.7.2 имеет проблемы на Alpha и тем не менее.

5.8 ssh-keygen вываливает в core под Solaris или SunOS.

Это ошибка gcc gcc 2.7.0, производящего неверный код при компиляции без оптимизации. Используйте "-O" или "-O -g" опции для gcc или замените старый gcc на gcc 2.7.2 или более свежий.

5.9 В Linux, компиляция прерывается с сообщениями об ошибках связанных с библиотекой libc.so.4.

Это некорректно сконфигурированная OS Linux; сделайте следующее "cd /usr/lib; ln -s libc.sa libg.sa" из под "root" экаунта чтобы исправить.

5.10 X authorization иногда терпит крах[иными словами не проходит].

Это обнаруженная ошибка в HP-UX 9 xauth, SR 5003209619. Патч PHSS_5568 должен решить эту проблему.

5.11 Ssh требует ввести пароль несмотря на наличие на удаленной машине файла .rhosts!

Существует несколько возможных вариантов; рассмотрим общие, включающие другие:
  • "host key" клиента не содержится в файле "known_hosts". Это характерно лишь для FQDN формы, а точнее для канонического имени машины из DNS.
  • Клиент host не имеет реверса в DNS. SSH требует наличия как прямой, так и обратной записи, для проверки естественно.
  • Когда в DNS отражены не все ip-address принадлежащие multi-homed клиенту, host. Заметим что ssh версии по 1.2.12 имеют ошибки в плане разбора multi-homed hosts.
  • Домашняя директория пользователя или файл ~/.rhosts имеют разрешение на запись для "world" или "group".(см. StrictModes опции конфигурации сервера) По русски это будет - "а шо вы хотели".
  • На некоторых машин, если домашняя директория монтируется по NFS, желательно чтобы и директория и ~/.rhosts были доступны для "world" на чтение.
  • Сам "root" использует ~/.rhosts или ~/.shosts; ну и ему нет дела до /etc/shosts.equiv и /etc/hosts.equiv, так попросите чтобы "root" их посмотрел.
  • Неразбериха между RhostsRSAAuthentication и RSAAuthentication.

  •  

    RhostsRSAAuthentication функционально заменяет 'r' утилиты; это требует чтобы программа ssh имела "setuid root", "secret key" в /etc/host_key файле, соответствующий "public key" в /etc/ssh_known_hosts и запись в ~/.[sr]hosts или /etc/[s]hosts.equiv.

    RSAAuthentication выполняется на уровне пользователя и требует наличия ~/.ssh/identity со стороны клиента(сгенерированного ssh-keygen) и файла ~/.ssh/authorized_keys со стороны сервера.

5.12 Почему ssh зацикливается с сообщением "Secure connection refused"?

Это конфигурационная проблема.

Ssh пытается вернуться к методу "r" команд когда не может соединиться с sshd демоном удаленной машины и в результате пытается запустить старый rsh для использования старого протокола.

Существуют всего два предположения почему это происходит:

  • Возможно вы установили ssh как rsh и забыли задать опцию при конфигурировании --with-rsh=PATH и в результате поисков rsh, ssh находит вместо него себя и снова запускает. Просто перекомпилируйте ssh с учетом сказанного.
  • Вы переместили старые rsh и rlogin в другую директорию, отличную от оригинального места расположения, но при этом вызов осуществляете корректно, те из того места куда положили. Но при этом не учли что старый исполняемый модуль rsh содержит в своем теле жестко-привязанный путь к rlogin.

  •  

    В этом случае вы можете перенести старые бинарники rsh и rlogin в /usr/old, отпатчить их с запустив Perl скрипт

    perl -pi.orig -e 's+/usr/(bin|ucb)/rlogin+/usr/old/rlogin+g ;' /usr/old/rsh
    который поправит двоичные модули и положит их в /usr/old/rsh.orig.

    И теперь осталось переконфигурировать ssh с --with-rsh=/usr/old/rsh.

Для плохо понимающих, в последнем варианте учитывается что путь в бинарнике имеет конкретную длинну, те чревато заменять например /usr/bin/rlogin на /usr/local/old/rlogin.

5.13 ssh-agent не работает с эмулятором терминала rxvt!

"Очень умный rxvt" закрывает все файловые дескрипторы при запуске, включая и тот который использовал ssh-agent. ;-) Используйте xterm вместо rxvt или поищите в архиве http://www.cs.hut.fi/ssh/ssh-archive/ ссылку на правку в rxvt сделанную Timo Rinne.

5.14 X authorization ВСЕГДА завершается неудачно.

Это происходит по той причине что программа "xauth" НЕ БЫЛА найдена во время конфигурации. Поправьте path, переконфигурируйте и перекомпилируйте ssh.

Это также могло произойти при сборке ssh с --with-libwrap и необходимая sshdfwd-X11: строка отсутствует в файле /etc/hosts.allow те в файле не указан host с которого разрешено заходить.

5.15 ssh зависает когда перенаправляет много TCP соединений.

Это известные скоростные проблемы в ssh протоколе до версии 1.2.13.

Некоторые изменения были сделаны в протоколе версии 1.2.14 чтобы избежать этого, но проблема межде версией 1.2.14 и более ранними осталась. Установите более свежие версии ssh, желательно последние и с обоих сторон.

5.16 Что означает сообщение, "Warning: remote host denied X11 forwarding"?

Либо с удаленной стороны запрещено перенаправление X11 (ForwardX11 No в config файле) или при сборке не были найдены X11 библиотеки или команда xauth.

5.17 Я продолжаю наблюдать чистые[некриптованные] пакеты в сети хотя работаю под ssh!

Это очень замечательно что вы следите за telnet, rlogin или X session на той машине где вы запустили ssh. Однако вы уверены что это действительно пакеты ssh? (к примеру проверьте номера их портов; sshd слушает 22-ой порт по умолчанию).

5.18 Возникают проблемы с RSAREF, иногда используется очень много бит!

Это ограничения библиотеки RSAREF. Вы должны установить "host key" не больше чем 896, максимально возможное значение приветствуется.

5.19 Компиляция завершается с сообщениями об ошибках от ассемблера.

В некоторых операционных системах имеются ошибки в подпрограмме ассемблера gmp. Попробуйте
make distclean
configure --disable-asm
для компиляции.

5.20 Ssh не компилируется под Solaris 2.5!

Перед запуском "configure" установите переменную среды CPP в "cc -E -Xs".

5.21 Ssh неожиданно сбрасывает соединения!

Эта проблема была обнаружена разными людьми на разных платформах SunOS 4, Solaris 2, Linux, and HP-UX 9 and 10, с версиями ssh 1.2.16 и 1.2.17. Она происходит с scp когда передается больщое количество данных через ssh stdin или при перенаправлении через X большого количества графических данных (например MPEG movie).

Попробуйте применить следующие правки к 1.2.16 or 1.2.17 for a fix. Это исправлено в 1.2.18 и позже.

--- serverloop.c.orig   Tue Jan 21 14:38:25 1997
+++ serverloop.c.       Tue Jan 21 14:37:54 1997
@@ -405,7 +405,7 @@
                  buffer_len(&stdin_buffer));
       if (len <= 0)
        {
-         if (errno != EWOULDBLOCK)
+         if ((errno != EWOULDBLOCK) &amp;&amp; (errno != EAGAIN))
            {
              if (fdin == fdout)
                shutdown(fdin, 1); /* We will no longer send. */

5.22 Ssh соединения перенаправляются от "root"-а!

Когда клиент соединяется, sshd фокует[запускает особым образом] дочерний процесс для управления протоколом, запущенный _дочерний_ процесс в свою очередь запускает еще одного потомка для выполнения пользовательского shell или команд. Проблема в том что вызов setuid() корректно запускает только второго потомка, а первый вынужден оставаться запущенным как root.

Среди других потенциальных проблем, такая как перенаправление соединений через -Lx:host:port будет выполнять соединение "host:port" от "root uid", с того моммента как first дочерний процесс стартует. А это означает что когда заданный компьютер попытается идентифицировать от какого пользователя идет запрос, он получит что от "root", вместо реального пользовательского uid.

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

5.23 Где можно найти правки[patches] для ssh?

James Barlow  управляет хранилищем правок для ssh:

http://www.ncsa.uiuc.edu/General/CC/ssh/patch_repository/

Его комментарии:

"Я выложил правки сделанные нами, плюс которые были _постированы_ в конференции и несколько мне неизвестных. Имеется страница с описание этих правок, но если у кого то имееются дополнительные сведения дайте мне знать. Большинство правок относится к версии 1.2.x, но я с успехом использовал многие для 2.0.x."


Страница 1 2 3 4 5 6 <<< Предыдущая Следущая >>>


Украинская Баннерная Сеть

Главная  Алфавитный индекс  Справка  Добавить FAQ  E-mail
Новости  Поиск по сайту

Copyright © 2001 - 2003 Olexandr Slobodyan.
Сайт создан в системе uCoz