У меня есть 4 разных устройства Raspberry, которые я подключил к 4 разным мониторам. Предыдущий технический специалист в моей компании установил и включил VNC-сервер на всех из них, так что он мог подключаться к ним через удаленный рабочий стол и выполнять только одну команду.
rdesktop -f -d -k en-us -d ourdomain -u tv1 10.xxx.xxx.xx1
Он просто подключался к каждому из них, чтобы запустить указанную выше команду, но, конечно, с другим пользователем и терминальным сервером. Я искал более удобный способ для всего вышеперечисленного из моего Fedora Box, чтобы объединить мощь sshpass и ssh. Поэтому сначала я попробовал
sshpass -p 'somepass' ssh [email protected]
и затем из сессии я бегу
rdesktop -f -d -k en-us -d ourdomain -u tv1 10.xxx.xxx.xx1
но я получил ошибку, которая гласила "не удалось открыть порт дисплея". Теперь я знаю, что результаты этой команды или любой другой команды будут отображены в моем терминале. Поэтому я попробовал несколько вариантов команды ssh, но результатом было либо появление rdsektop на моем экране, либо указанная выше ошибка.
sshpass -p 'somepass' ssh [email protected] -t rdesktop -f -d -k en-us -d ourdomain -u tv1 10.xxx.xxx.xx1
или
sshpass -p 'somepass' ssh [email protected] -t -X rdesktop -f -d -k en-us -d ourdomain -u tv1 10.xxx.xxx.xx1
То, чего я хочу добиться здесь, это выполнить команду rdesktop на удаленной машине и показать на экране телевизора сеанс, который я создал ранее. В двух словах. Обойти вход vnc и сделать все это из ssh. Есть ли вообще? Я знаю, что где-то я не прав, но я не могу увидеть, где я не прав.
решение1
не удалось открыть порт дисплея
Эта команда указывает мне, что у вас, вероятно, не происходит автоматическое перенаправление X11. Но вы, похоже, пытаетесь запустить приложение X11 из удаленной системы.
Если вы планируете запускать rdesktop с удаленной системы, то вам нужен сервер SSH для поддержки переадресации X11, вам нужен xauth
установленный на удаленной системе пакет. Вам нужно либо настроить конфигурацию вашего клиента ssh /etc/ssh/ssh_config
, ~/.ssh/config
либо передать -X
в ssh
командную строку, чтобы включить переадресацию X11 с клиента.
Однако запуск rdesktop
с удаленной машины может оказаться не лучшим вариантом. По сути, у вас есть все накладные расходы сеанса X11, плюс все накладные расходы сеанса RDP. Возможно, лучше использовать функции переадресации портов SSH, а затем запустить локальный клиент rdesktop/freerdp. Таким образом, вы сможете избежать замедления, типичного для удаленных сеансов X11.
Конечно, последнее замечание: я настоятельно рекомендую вам пересмотреть использование sshpass. Если это вообще возможно, вам следует рассмотреть возможность использования аутентификации на основе ключей.