К основному контенту

В удаленку на Ґноме

Шпора по Линуху

Затосковал в macos, пробую периодическими набегами вернуться на Linux. То в виртуальной машине его поставлю, то вторым бортом. О, сколько снова вопросов, поисков и... иногда даже решений. Это моя записная книжка чтобы решения эти не растерять.

Подключение к рабочей сети по VPN

Мне важно чтобы я мог работать удаленно. Не то чтобы это было моё основное занятие, просто иногда в выходной проще подключиться и сделать, чем долго объяснять в трубку на пальцах да по памяти что надо увидеть и где нажать чтобы возможно исправить нетиповую ситуацию.

На работе у меня конечно же Виндоза, дома есть подопытный Линукс с сороковым Ґномом. Мне выданы ключи от туннеля ви-пи-эн (сертификат ca.crt, файл конфигурации work.ovpn и логин с паролем).

Первым делом создаю скрытую папку .cert и сохраняю в нее полученные сертификат с файлом конфигурации туннеля.

$ mkdir ~/.cert
$ mv ca.crt ~/.cert
$ mv work.ovpn ~/.cert

Теперь создаю новое VPN-соединение импортируя OVPN файл. В окне Параметры (Ґнома), перехожу в Сеть > VPN > Добавить. Выбираю Импортировать из файла... Здесь предлагаю сохраненный только что файл конфигурации work.ovpn.

В открывшемся окне уже открыта вкладка Идентификация. Меняю поле Название на название организации куда ведет этот туннель. Заношу выданные Имя пользователя и Пароль. Убеждаюсь, что в поле Сертификат CA уже лежит ca.crt. Если файл конфигурации и сертификат сложены в разных местах, потребуется самостоятельно указать местоположение Сертификата CA.

Чтобы компьютер при подключении к ви-пи-эн не пытался использовать ресурсы удаленной рабочей сети для обращений к интернету (моя личная почта, браузер и т. п.) на вкладках IPv4 и IPv6 включаю галочку Использовать это подключение только для ресурсов в этой сети. Жму Применить.

Если что-то идет не так, возможно не установлен пакет networkmanager-openvpn. После установки надо перезапустить менеджер sudo systemctl restart networkmanager и попробовать импорт еще раз.

Или вот. Как-то раз знакомился с Федорой, получил ошибку Activation of network connection failed решилось предоставлением для OpenVPN доступа с помощью restorecon -R -v ~/.cert.

Теперь можно включать и выключать VPN прямо в системном меню Ґнома.

Подключение к удаленному рабочему столу

В качестве клиента для удаленного рабочего стола я какое-то время пользовался программой Remmina. Если её не было в только что установленном дистрибутиве, сразу же ставил — здесь главное было не забыть в довесок выбрать пакет freerdp.

Сейчас я поставил Манжаро Линукс на Макбук с Ретина-экраном и столкнулся с проблемой, что при работе Реммины на машине с экраном HiDPI по удаленному рабочему столу будет медленно ползать очень маленький курсор. Реально маленький, его едва видно.

Никак не смог побороть эту проблему. При этом она точно решаема. Поставь на тот же Макбук Убунту — все из коробки работает. Если знаете как решить проблему маленького курсора в других дистрибутивах, буду рад, если поделитесь в комментариях.

Зато узнал, что упомянутый выше пакет Фри-эр-дэ-пэ может и сам по себе работать, без Реммины. При этом можно настроить буквально всё! Одна неприятность, эта программа запускается из терминала с перечислением длинного хвоста параметров.

Настройка удобного запуска FreeRDP

Сделаю графическое меню с перечнем удаленных рабочих столов запускаемое комбинацией клавиш. Будет три скрипта: один рисующий меню выбора и еще по одному скрипту, каждый на запуск своего удаленного рабочего стола. Положу их в отдельно созданную по случаю скрытую папку .go-work. Дополнительно, в папке Документы создам общую папку РаботаVPN для подключения к удаленному компьютеру в качестве внешнего, сетевого диска (для обмена файлами).

$ mkdir -p ~/Документы/РаботаVPN
$ mkdir ~/.go-work
$ cd ~/.go-work

Начну с рабочих столов. Создаю файл скрипта xfreerdp-workbench1.sh, делаю его запускаемым и открываю в редакторе.

$ touch xfreerdp-workbench1.sh
$ chmod +x xfreerdp-workbench1.sh
$ gedit xfreerdp-workbench1.sh

Скрипт {выделенное надо заменить} такой:

#!/bin/sh

# Так как хочу использовать общий буфер обмена
# на всякий случай удалю сначала то что в нем лежит.
# Для этого заполню буфер незначительной информацией,
# например, временем работы uptime.
# Запускаю xfreerdp только если не возникло ошибки.

uptime | xclip -sel clip && xfreerdp \
    /f `# режим полного экрана` \
    /bpp:32 `# цвет в битах на пиксель, по умолчанию - 16` \
    /drive:Home,$HOME/Документы/РаботаVPN \
    /cert-ignore `# принимать самоподписанный сертификат` \
    /d:{DOMAIN} `# название домена в удаленной рабочей сети` \
    /u:{user-name} `# имя пользователя на удаленном домене` \
    /p:{pA$$w*rd} `# пароль пользователя на удаленном домене` \
    /v:{XXX.XXX.XXX.XXX} `# IP адрес в удаленной рабочей сети` \
    /kbd:0x10419 `# 0x419 для Ru, 0x10419 для Ru(Typewriter)` \
    /w:1280 /h:800 `# размер экрана для удаленной машины` \
    /size:50% /smart-sizing `# 50% так как здесь экран HiDPI` \
    -grab-keyboard `# не захватывать клавиатуру` \
    +auto-reconnect `# восстанавливать обрывы связи` \
    +clipboard `# разрешить общий буфер обмена` \
    +fonts `# сглаживание шрифтов может замедлять работу` \
    # +aero `# проверить как-нибудь`
# Последнее возможно полезно для Windows 7+ по RemoteFX

Теперь файл скрипта для второго удаленного рабочего стола xfreerdp-workbench2.sh.

$ touch xfreerdp-workbench2.sh
$ chmod +x xfreerdp-workbench2.sh
$ gedit xfreerdp-workbench2.sh

Для этой машины не подключаю принтер, общую папку и буфер обмена. Поэтому скприпт короче:

#!/bin/sh

# Здесь мне общий буфер обмена не нужен,
# поэтому просто запускаю xfreerdp.

xfreerdp \
    /f `# режим полного экрана` \
    /bpp:32 `# цвет в битах на пиксель, по умолчанию — 16` \
    /cert-ignore `# принимать самоподписанный сертификат` \
    /d:{DOMAIN} `# название домена в удаленной рабочей сети` \
    /u:{user-name} `# имя пользователя на удаленном домене` \
    /p:{pA$$w*rd} `# пароль пользователя на удаленном домене` \
    /v:{YYY.YYY.YYY.YYY} `# IP адрес в удаленной рабочей сети` \
    /kbd:0x10419 `# 0x10419 для Ru(Typewriter), 0x419 для Ru` \
    /w:1280 /h:800 `# размер экрана для удаленной машины` \
    /size:50% /smart-sizing `# 50% так как здесь экран HiDPI` \
    -grab-keyboard `# не захватывать клавиатуру` \
    +auto-reconnect `# восстанавливать обрывы связи` \
    +fonts `# сглаживание шрифтов может замедлять работу` \

Ну и на последок — файл скрипта для меню выбора удаленной машины.

$ touch choose-machine.sh
$ chmod +x choose-machine.sh
$ gedit choose-machine.sh

Меню делаю на программе Zenity

#!/bin/sh

WORKBENCH=$(zenity --list \
    --title "Выбери рабочее место" \
    --text "Не забудь подключить ⚡️ VPN ⚡️" \
    --radiolist --column "🖥️" --column "Сервер" \
    TRUE "Верстак 1" \
    FALSE "Верстак 2")

if [ "$WORKBENCH" = "Верстак 1" ]
then
    sh ~/.go-work/xfreerdp-workbench1.sh;
fi

if [ "$WORKBENCH" = "Верстак 2" ]
then
    sh ~/.go-work/xfreerdp-workbench2.sh;
fi

Всё готово. Осталось выбрать подходящую комбинацию клавиш и повесить на неё скрипт с меню.

Открываю Параметры (Ґнома), перехожу в Клавиатура > Комбинации клавиш > Настроить комбинации. Выбираю Дополнительные комбинации клавиш > Добавить. Заполняю команду ~/.go-work/choose-machine.sh, комбинация [Shift] + [Super] + [G]. Называю комбинацию «На работу!», жму Добавить.

Включаю VPN в главном меню Ґнома, жму Shift+Super+G

Скриншот окна графического меню с перечнем удаленных рабочих столов
Неплохо получилось!

В тексте окна я для себя оставил напоминалку включить сначала VPN. Если знаете как проверить его состояние и запустить в скрипте, напишите в комментариях — буду рад обновить свой скрипт меню.


Внес пару правок в скрипт запуска freerdp. Во первых, убрал из скрипта пароль домена в открытом виде — теперь с помощью того же zenity спрашиваю пароль при каждом запуске (см. блок начинающийся с /p:). Во вторых, добавил явное указание использовать протокол rdp (строка /sec:rdp).

Обновленный скрипт теперь выглядит так:

#!/bin/sh

# Так как хочу использовать общий буфер обмена
# на всякий случай удалю сначала то что в нем лежит.
# Для этого заполню буфер незначительной информацией,
# например, временем работы uptime.
# Запускаю xfreerdp только если не возникло ошибки.

uptime | xclip -sel clip && xfreerdp \
    /f `# режим полного экрана` \
    /bpp:32 `# цвет в битах на пиксель, по умолчанию - 16` \
    /drive:Home,$HOME/Документы/РаботаVPN \
    /cert-ignore `# принимать самоподписанный сертификат` \
    /sec:rdp `# настоять на протоколе rdp` \
    /v:{XXX.XXX.XXX.XXX} `# IP адрес в удаленной рабочей сети` \
    /d:{DOMAIN} `# название домена в удаленной рабочей сети` \
    /u:{user-name} `# имя пользователя на удаленном домене` \
    /p:$(zenity --entry `# запрос пароля внешним приложением` \
        --title="Пароль домена" \
        --text="Введите свой пароль" \
        --hide-text) `# пароль вводится — прятать символы` \
    /kbd:0x10419 `# 0x419 для Ru, 0x10419 для Ru(Typewriter)` \
    /w:1280 /h:800 `# размер экрана для удаленной машины` \
    /size:50% /smart-sizing `# 50% так как здесь экран HiDPI` \
    -grab-keyboard `# не захватывать клавиатуру` \
    +auto-reconnect `# восстанавливать обрывы связи` \
    +clipboard `# разрешить общий буфер обмена` \
    +fonts `# сглаживание шрифтов может замедлять работу`

Комментарии

Популярные сообщения из этого блога

Сканируем паспорт

Как сказал бы сборник российских пословиц и поговорок: Сорок пять — беги паспорт получать! Дожил. Получил. Новый, современный, с цветной фотографией под голографической ламинацией. Все сверкает и переливается — красота! И тут наступает время Первого Скана. Кладу новенький паспорт в сканер, давлю сканировать, беру лист… что за черт! — на моей фотографии в паспорте, прямо на лбу капслоком написано РОССИЯ. Хоть сегодня и праздник такой, но — нет. Наверно, положил неправильно. Поворачиваю паспорт в сканере, повторяю — теперь рот заклеен стикером »РФ«. Еще поворот — диадема двуглавая. Настоящий — как ни крути Паспорт должен быть защищен, понятное дело. Но мне стало интересно, а можно ли вообще найти угол сканирования, при котором проявление голографических знаков над фотографией минимально? После серии сканирований (надо ж куда-то лишний выходной потратить) нашел, что голограмма видна всегда, но паспорт лучше всего класть под углом 140 ° —145 ° . Лайфхак Прислонить к рамке ска...

Ретиновый мир

Кто как борется с засильем экранов высокого разре­шения в наших девайсах? Как разместить картинку на странице так, чтобы на наших ретинах она не превра­щалась в расплыв­чатое недора­зу­мение, теребящее тревожный звоночек, напоми­нающий о неотвра­тимости прибли­жа­ющегося похода к офталь­мологу? Что я имею ввиду? В то прост­ранство, которое на класси­ческом, обычном экране занимает одна точка (далее пиксель), на ретине поме­щаются четыре. Когда откры­ваешь на ретина-экране страницу с картин­ками, сверстанную под обычный экран, браузеру неоткуда взять изобра­жение улучшен­ного качества, он берет что дают и просто растя­гивает это в два раза по горизон­тали и по вертикали, ну и немного сглаживает результат. Получается что получается. Тут надо сказать, что если на этой картинке представ­лена обычная бытовая фотография, то описанного подвоха можно и не заметить. Проблемы вылезают, если на изобра­жении ест...

Истории шагающего калькулятора

Все режимы на экране Citizen SRP-175 Наконец-то занялся восстановлением проекта, посвященного программируемому калькулятору Citizen SRP-175 . Подготавливаю и выкладываю туда листинги своих программ. Программы чаще развлекательные, написанные для самообразования. Получится маленькая галерея с готовыми для печати листингами. Для проекта выбрал технологию Сайтов Гугл. Есть надежла, что здесь ему уже ничего не будет страшно.