VNC server проблема с поддержкой шифрования.

Сегодня срочно потребовалось зайти удаленно на десктоп с убунтой 14.04. Такое бывает крайне редко, последний раз пару лет назад, но на всякий случай стандартный vnc сервер у меня всегда включен.

С первой попытки зайти не удалось, vnc-viewer жаловался на какие то проблемы с протоколом 3.3. Другим клиентом зайти тоже не удалось. Вторая Ultravnc сказала «Error no security type suitable for rfb 3.3 supported».

 

Решить эту фигню можно только с помощью заклинания в консоли:

gsettings set org.gnome.Vino require-encryption false

которое отключить нафиг шифрование.

P.S.

Если попытаться выполнить эту команду удаленно (например по ssh с другого хоста), то в ответ получишь:

(process:12024): dconf-WARNING **: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY

решается эта беда с помощью такого скрипта (спер отседа: http://askubuntu.com/questions/457016/how-to-change-gsettings-via-remote-shell):


#!/bin/bash

# Remember to run this script using the command «source ./filename.sh»

# Search these processes for the session variable
# (they are run as the current user and have the DBUS session variable set)
compatiblePrograms=( nautilus kdeinit kded4 pulseaudio trackerd )

# Attempt to get a program pid
for index in ${compatiblePrograms[@]}; do
PID=$(pidof -s ${index})
if [[ «${PID}» != «» ]]; then
break
fi
done
if [[ «${PID}» == «» ]]; then
echo «Could not detect active login session»
return 1
fi

QUERY_ENVIRON=»$(tr ‘\0’ ‘\n’ < /proc/${PID}/environ | grep «DBUS_SESSION_BUS_ADDRESS» | cut -d «=» -f 2-)»
if [[ «${QUERY_ENVIRON}» != «» ]]; then
export DBUS_SESSION_BUS_ADDRESS=»${QUERY_ENVIRON}»
echo «Connected to session:»
echo «DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}»
else
echo «Could not find dbus session ID in user environment.»
return 1
fi

return 0

в моем случае, я сохранил его в файл discover.sh (естесстевнно нужно ему chmod +x сделать), и запустил командой:


. ./discover.sh unity

именно точка, потом пробел, и затем путь к скрипту.
При этом на удаленном хосте должна быть запущена сессия unity, иначе фокус не получится.

В ответ он должен выплюнуть что-то вроде:

Connected to session:
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-rJBfi5qWpb

Как все это работает, читай по ссылке, в оригинале.

управление Ubuntu через VNC из Windows

Давно не пользовался VNC, а тут приспичило. Поскольку в бубунте (десктопной) есть встройенный VNC сервер, не долго думая скачал на бук VNC-Viewer-5.0.1-Windows-64bit.exe, запустил, и прифигел, ибо тупит жестко… Это при условии, что управляемый комп стоит в трех метрах от меня, подключенный к моему же роутеру….

В процессе выяснения, и активного гуглежа, в перерывах когда прогружались выданные в гугле странички (для немагаданцев поясню, что у нас инет спутниковый, и очень тупит) пробовал разные варианты. Так вот проблема оказалась в VNC клиенте.

Скачал UltraVNC, поставил, в клиенте обнаружились настройки протокола, выбрал протокол tight и все заработало, как надо. Если у вас канал дохлый, можете еще и цветность поубавить.

Удаленный рабочий стол

Любому админу по долгу службы приходится часто использовать удаленку. Как оно бывает, сначала для управления серваком на работе, потом бывало, что б домой зайти, позырить чего там в чате пишут… и т.д.

Сей опус явился следствием глюкавости и недоразвитости стандартного, включенного во многие дистры клиента для удаленки tsclient. кто использовал, тот поймет.

Дело в том, что эта программа является фронтэндом для rdesktop, который в свою очередь, не развивается с 2008 года. Соответственно одни и те же баги, знакомые с детства очень и очень давно.

Хорошая новость — недавно появился, и активно развивается форк rdesktop, под названием freerdp. Плохая новость — tsclient его не использует. Но на гугле меня не банили, так что нашлась замена — remmina. И как показала практика, замена эта в сто раз удобнее, и функциональнее tscclient’а.

Тем кто как и я сидит на 10.04 или более ранних версиях, к сожалению в репе пока эта утилита не доступна, и скачать ее можно только с ppa некого Vic, за что ему огромное спасибо, и стопицот плюсов можете поставить на его страничке в ланчпаде.

Добавить ppa с freerdp и remmina можно командой add-apt-repository ppa:llyzs/ppa, ну а далее, aptitude update, aptitude install remmina, freerdp.

Всего наилучшего,
SerP