1

У меня есть Linux-VPS, использующий его как GIT- и HTTP-сервер.

HTTP: Apache

Git-сервер: git-http-backend через vhost

Когда я вхожу в систему через SSH, все в порядке. Но если я открываю второе SSH-соединение, я получаю эту ошибку:

STDIN: это не TTY

Я использую SSH в течение многих лет и никогда не видел такой ошибки .. Я искал около 1,5 часов ..

** Пока я писал это, ошибка становится еще более странной - теперь ошибка возникает при каждом соединении!

Я не нашел ни одного решения, которое помогло бы мне ..

Я использую..

  • Windows
  • Безопасный клиент Shell (довольно устаревший, но намного лучше, чем замазка)

2 ответа2

0

Вы "цепочки" ssh-соединений? Это может быть причиной. Я думаю, что https://unix.stackexchange.com/questions/48527/ssh-inside-ssh-fails-with-stdin-is-not-a-tty является актуальным.

0

По причинам, которые я не понимаю (но посмотрим позже), ваша оболочка не настроена на интерактивную работу; просто выдать на удаленном сервере,

  bash -i 

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

 case $- in
          *i*) ;;
           *) return;;
 esac

Это проверяет, есть ли среди флагов оболочки ($ -) i для интерактива ; если его нет, он пропускает поиск файла. отсюда необходимость сейчас бегать

 source ~/.bashrc

который даст вам вашу стандартную среду. Я настоятельно не рекомендую вам автоматически выполнять bash -i , например, внутри вашего файла .bashrc: выполнение автоматического скрипта, который устанавливает оболочку в интерактивное состояние, является оксюмороном и эквивалентно наведению заряженного оружия на ваш храм.

Относительно того, почему возникает это сообщение об ошибке, я могу только предположить:

  1. ваш интернет-провайдер позволяет выделить небольшое количество одновременных PTY для каждого пользователя; это, например, политика GitHub (она разрешает ноль PTY), но не может реально увидеть преимущество в том, чтобы разрешить небольшое, но ненулевое число. Но тогда, может быть, кто-то умнее меня, кто может пролить свет на это ...

  2. вы пытаетесь использовать ssh из обратной оболочки - хорошо известная проблема для пентестеров. Есть способы обойти это.

  3. это связано с устаревшей версией Secure Shell Client, которую вы используете, или с Windows, но в любом случае я мало чем могу помочь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .