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

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

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

Затосковал в 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 ° . Лайфхак Прислонить к рамке ска

Муаровый микроскоп

Забавный муар получается когда смотришь через две параллельные сетки. Видна та же исходная сетка, только на несколько порядков увеличенная. А что, если между сетками поместить что-либо ажурное, увеличится? Сквозь автобусный рекламный баннер Интересно. Существуют увеличительные приборы, использующие этот оптический эффект? Какой-нибудь муаровый микроскоп?

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

Кто-то терпит, а я не могу... Когда могу. Удивительно, но до сих пор существуют произ­во­дители, которые давно делают потря­сающие товары, но так и не научились сопро­во­ждать их сопут­ству­ющей графикой. Я для нечастой домашней печати выбрал замеча­тельный принтер Xerox Phaser 3250. Красивый, быстрый, экономный. Да, в Ксероксе сделали родной драйвер принтера для Макинтоша, и даже перио­ди­чески его обновляли. Но, мало того, что они ни разу не снабдили драйвер мало-мальской иконкой, так полно­ценных, хорошего качества, изобра­жений самого принтера в сети нужно еще поискать. Чего боятся? Что кто-то скитаит их дизайн, что ли? — тьфу делов-то! Скорее всего, просто лень напря­гаться, потому что рассчи­тывали на корпо­ра­тивный рынок, а не на потре­би­тельский. Сегодня так вести себя просто непрос­ти­тельно. Что ж, оставим это на совести произ­во­ди­телей, сделаем все сами. Красивый принтер в Доке печатает документ Для себя я эту проблему решил своими руками и уже несколько лет, в