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을 고쳤다는 요약보다 기록이 더 값집니다. 롤백 메모 없이 끝나는 점검 목록은 반쪽짜리 목록입니다.

관련 글