Віддалений редактор VPN через SSH: яку машину ви редагуєте?
Перенаправлення X11 показує віддалений редактор на вашому ноутбуці, але профіль і маршрути залишаються на віддаленому хості. Перевірте хост, UUID і шлях відкату, перш ніж зберігати.
Перенаправлення X11 розміщує вікно редактора на вашому ноутбуці, а процес продовжує працювати на віддаленому хості. Цей розрив і є вся пастка: ви дивитеся на локальне вікно й редагуєте віддалений профіль, і хибне припущення про те, якій машині належить зміна, може обірвати SSH-з'єднання, через яке ви працюєте. Контрольний список нижче фіксує хост і профіль, перш ніж щось буде збережено. Кожен крок має умову зупинки, тому рання помилка коштує дешево.
Крок 1: назвіть машину, якій належить профіль
Виконайте команди ідентифікації в оболонці, яку збираєтеся налаштовувати, і прочитайте відповідь, а не припускайте її з запрошення. Ім'я хоста в запрошенні — це рядок, який вивела ваша оболонка; ім'я хоста ядра — те, чому довіряє решта цього списку. Якщо вони розходяться, ви на неправильній машині або запрошення прикрашене вашою локальною оболонкою. Зупиніться й перепідключіться до потрібного хоста, перш ніж продовжити.
hostnamectl
hostname -f
ip -brief address
Наступне питання — чи має ця машина взагалі тримати VPN. Налаштування клієнта ноутбука й налаштування клієнта віддаленого хоста дають різні маршрути, різний DNS і різні режими відмови. Вирішіть, який із них ви маєте на увазі, перш ніж торкатися профілю, і запишіть рішення там, де його знайде наступна людина.
Крок 2: читайте профіль за UUID, а не за міткою
NetworkManager ідентифікує з'єднання за UUID, тоді як ім'я — це мітка, яку будь-хто може змінити або продублювати. Перелічіть обидва й зіставте саме той запис, який ви маєте на увазі, особливо на хості, куди за роки було імпортовано кілька профілів VPN.
nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
nmcli general permissions
Збережені записи й активні з'єднання відповідають на різні питання: перший перелічує те, що існує, другий — те, що зараз несе трафік. Рядок дозволів описує локальну політику для вашої сесії й нічого не каже про те, чи прийме VPN-шлюз обліковий запис. Якщо потрібного профілю немає в збереженому списку, зупиніться тут, бо редагувати неправильний запис гірше, ніж не редагувати взагалі.
Отримавши UUID, помістіть його в змінну й використовуйте цю змінну в кожній наступній команді. Це прибирає цілий клас помилок копіювання й вставлення та робить запис відтворюваним.
UUID=$(nmcli -g UUID connection show 'Corp VPN')
nmcli connection edit uuid "$UUID"
Крок 3: вирішіть, чи графічний редактор — правильний інструмент
Редактор, якому потрібен запит polkit або агент секретів, не отримає їх лише тому, що його вікно з'явилося на вашому ноутбуці. Ці компоненти працюють у контексті віддаленої сесії, а перенаправлення дисплея їх не перенаправляє. Якщо редактор не може зберегти через помилку авторизації або секрету, проблема не в дисплеї.
echo "$DISPLAY"
ssh -X you@vpn-host
xauth list
OpenSSH вмикає перенаправлення X11 за допомогою -X і документує обережність, що з цим пов'язана: віддалений хост може дістатися до вашого локального дисплея, що є справжньою межею довіри. Довірене перенаправлення за допомогою -Y прибирає частину цих перевірок і ніколи не повинно бути рефлекторним рішенням для програми, яка падає за налаштуваннями за замовчуванням. Якщо ваша організація публікує метод віддаленого адміністрування, використовуйте його замість того, щоб вигадувати варіант. У більшості випадків редактор командного рядка — менша поверхня й краща відповідь.
Зупиніться тут, якщо єдиний робочий шлях вимагає -Y і ви не можете пояснити чому. Це рішення для власника політики безпеки, а не обхід, який варто тримати в особистому скрипті.
Крок 4: збережіть шлях відновлення, перш ніж щось активувати
Зміна VPN може видалити маршрут, від якого залежить ваша SSH-сесія, тому підготуйте шлях назад, перш ніж активувати профіль. Доступ через консоль, адреса позасмугового керування або запланований відкат — усе це рахується; надія на те, що зміна спрацює, не рахується.
sudo systemctl status NetworkManager
ip route show default
ss -tn state established '( sport = :22 )'
Активуйте лише потрібний профіль, потім перевірте з віддаленого хоста: маршрут за замовчуванням, зворотний шлях SSH і один ресурс, який має бути доступним через тунель. Успішна перевірка з вашого ноутбука перевіряє шлях ноутбука й нічого не каже про віддалений хост. Якщо сесія обірветься, використайте шлях відновлення, а не підключайтеся навмання. Збереження профілю — не активація, а активація — не перевірка.
Запишіть UUID, змінені значення властивостей і команди, якими ви їх перевіряли. Наступній людині, яка торкнеться цього хоста, знадобляться всі три, а запис цінніший за підсумок про те, що VPN виправлено. Контрольний список, який закінчується без нотатки про відкат, — половина списку.