Команда: должна быть запущена из терминала


9

У меня есть общий хостинг, я вошел в систему с помощью ssh. когда я набираю, например, у suменя был этот вывод: su: must be run from a terminal

Эта ошибка связана с тем, что у меня нет достаточных разрешений или с чем-то еще?


Обычно я ожидаю, что эта ошибка будет указанием на отсутствие выделенного TTY для соединения, но это не имеет большого смысла, если вы подключаетесь через SSH и получаете оболочку. Можете ли вы поделиться точными шагами, которые вы предприняли, чтобы получить эту ошибку, начиная с ssh -F /dev/null user@hostвашей локальной системы? (Это -F /dev/nullприводит к тому, что любая локальная конфигурация системы или пользователя SSH игнорируется.) Если вы не авторизованы для использования su, это обычно вызывает гораздо более очевидное сообщение об ошибке (хотя я не помню точную формулировку и не имею система настроена где я могу это попробовать).
CVN

1
Возможно, есть соединение с securetty (5)? Другими словами, указан ли tty сеанса ssh в / etc / securetty? (prepend / dev /)
D McKeon

Вы говорите, например su, вы получаете эту ошибку для других команд?
Ctrl-Alt-Delor

Что ttyпоказывает команда ? Вы входите в систему с помощью ssh, затем печатаете su, или вы работаете ssh su? Какой эмулятор терминала вы используете? Вы должны иметь root-доступ?
Жиль "ТАК - перестань быть злым"

Пытаясь ответить на все вопросы: я войти с SSH ( ssh -l login@host hostя могу войти, только при использовании этой команды) , чем тип su(другие команды работают нормально), когда я печатаю у ttyменя есть: not a tty.
4m1nh4j1

Ответы:


4

Попробуйте -tопцию ssh. Если это не работает, попробуйте -tt.

-t Сила псевдо-тты выделения. Это может использоваться для выполнения произвольных программ на экране на удаленной машине, что может быть очень полезно, например, при реализации сервисов меню. Несколько -tопций принудительно распределяют tty, даже если ssh не имеет локального tty.


Я пробовал ssh -tl root@host hostи с двойным т, но результат был тот же. PS: как уже упоминалось в документации, чтобы войти в систему с помощью SSH, я должен использовать такую ​​команду ssh -l login@host host.
4m1nh4j1

Почему вы входите как root? и вам не нужно -l.
Ctrl-Alt-Delor

Я использую, -lпотому что я обнаружил, что без добавления я не могу войти. Я могу видеть это в документации dtcsupport.gplhost.com/UserDoc/FRHow-Works-clientSSH-System (единственная страница, которую я нашел, на французском языке). Если я не использую -lssh, не принимайте мой пароль.
4m1nh4j1

Я создал учетную запись ssh с " root" в качестве логина, поэтому я использую root@hostдля ssh
4m1nh4j1

Вход в систему как root, считается вредным: большинство людей, заинтересованных в безопасности, отключают root-вход. Вы можете получить root-права после входа в систему (я рекомендую sudo). Если вы также отключите аутентификацию по паролю, что приведет к принудительной аутентификации на основе ключей, вам понадобятся ключ и пароль, чтобы получить доступ к root.
Ctrl-Alt-Delor
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.