Отдалечен 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 е поправен. Контролен списък, който завършва без бележка за връщане назад, е половин списък.