Я пытаюсь проверить версию BIOS сервера через SSH, команда, которая требует привилегий root:
ssh remote-server su -c dmidecode
но это конечно терпит неудачу с ошибкой:
стандарт должен быть tty
Как мне сделать эту работу? Я не могу использовать sudo, и когда я пытаюсь войти в систему как root @ remote-server, он не принимает пароль, который я использую для команды 'su'. Я использую RedHat Enterprise Linux 4.
Ответы:
Используйте,
-t
чтобы заставить ssh выделить tty:Вы также можете разрешить прямой доступ root к ssh. Если вы используете аутентификацию с открытым ключом, это может быть более безопасно, поскольку вы не будете передавать пароль. Если вы решите сделать это, рассмотрите возможность блокировки корневых входов из любой точки, кроме доверенных IP-адресов, добавив следующее
/etc/security/access.conf
:и убедитесь, что
UsePAM
не отключен вsshd_config
источник
-t
s в свой пример?Разве вы не можете просто войти на удаленный сервер как обычный пользователь, а затем использовать sudo ?
Вы также можете попробовать процитировать команду, которая будет выполнена ssh, как в
или
источник