Назад | Перейти на главную страницу

x11vnc через туннель SSH - sudo: нет tty и не указана программа askpass

Я пытаюсь настроить одноразовый туннель SSH, который создает экземпляр x11vnc на экране входа в систему.

ssh -f -t -L 5900:localhost:5900 user@10.1.10.1 'sudo /usr/bin/x11vnc -safer -once -nopw -display :0 -auth /home/user/.Xauthority'

/ etc / sudoers:

user@myhost:~$ sudo cat /etc/sudoers
[sudo] password for user: 
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/
# instead of directly modifying this file.
#
Defaults:user   !requiretty
Defaults        env_reset
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

root    ALL=(ALL:ALL) ALL
user  ALL=(ALL:ALL) NOPASSWD: /usr/bin/x11vnc

%admin ALL=(ALL) ALL

%sudo   ALL=(ALL:ALL) ALL

Конечный результат таков:

Pseudo-terminal will not be allocated because stdin is not a terminal.
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 5900
Could not request local forwarding.
ebz@icarus:~ $ sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts

Это говорит bind: Address already in use, но я считаю, что это не так и не связано:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 10.1.10.1:domain        *:*                     LISTEN      -               
tcp        0      0 *:ssh                   *:*                     LISTEN      -                   
tcp6       0      0 xxxx::xxxx:xxxx::domain [::]:*                  LISTEN      -               
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      -               

Можно с уверенностью сказать, что мы можем игнорировать это сообщение. Кроме того, удаление записи sudo для пользователя также не имеет никакого эффекта.

Спасибо, парни. Ура.

P.S. Решение здесь - Нет TTY при выполнении команд через SSH .. - не сработало :(

Кроме того, примечание: ЭТО ОТНОСИТСЯ К СЕРВЕРУ (ПРЕДЫСТОРИЯ ОТНОСИТЕЛЬНО ПОЛЬЗОВАТЕЛЬСКОЙ РЕАЛИЗАЦИИ LXC VMM ДЛЯ OPENNEBULA). Пожалуйста, НЕ помечайте это вне темы, так как это допустимый вариант использования приложения.

ОБНОВИТЬ

Плюс -tt, минус -f -t переключатели:

$ ssh -tt -L 5900:localhost:5900 user@10.1.10.1 'sudo /usr/bin/x11vnc -safer -once -nopw -display :0 -auth /home/user/.Xauthority'
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 5900
Could not request local forwarding.
[sudo] password for user: 

А пароль запрашивает? Но он работает после ввода пароля.

Удостоверься что user не входит ни в одну из групп admin или sudo или поместите строку sudoers для user после групповых строк.

На странице руководства sudoers

Когда для пользователя совпадают несколько записей, они применяются по порядку. Если есть несколько совпадений, используется последнее совпадение (которое не обязательно является самым точным совпадением).