Hai bí danh SSH, một máy chủ: VPN trực tiếp hay máy chủ nhảy
Giữ một đường VPN đã được phê duyệt và một đường bastion đã được phê duyệt thành các bí danh và dấu trang riêng, để không lối tắt nào phải đoán đường nào được phép.
Cùng một máy chủ riêng trả lời qua VPN đã được phê duyệt và qua bastion đã được phê duyệt, và bạn muốn một dấu trang Emacs cho mỗi đường thay vì một lối tắt đoán mò. Quyết định không phải là đường nào tốt hơn; mà là đường nào được phép cho công việc trước mắt. Giữ cả hai rõ ràng, đặt tên riêng cho từng cái, và để tên tệp nói bạn đã chọn cái nào.
Điều kiện một: những đường nào được phê duyệt?
Máy chủ nhảy không phải là phương án thay thế tự động cho yêu cầu VPN, và VPN không phải là giấy phép để bỏ qua một bastion đã được phê duyệt. Hỏi những tuyến nào được phép cho tài khoản của bạn và cho dữ liệu này. Nếu cả hai đều được phép, bạn có lựa chọn; nếu chỉ một, bộ dấu trang có một mục. Câu trả lời đó đến từ chủ dữ liệu, không phải từ tuyến tình cờ hoạt động hôm nay.
Hãy ghi lại câu trả lời, vì sự khác biệt này biến mất nhanh chóng trong một sự cố.
Cả hai đường cũng cần cấu hình tài khoản và danh tính riêng. Một bí danh dùng chung hoạt động qua một tuyến có thể thất bại qua tuyến kia vì những lý do không liên quan gì đến mạng.
Điều kiện hai: bạn có thể đặt tên riêng cho từng đường không?
Một cấu hình SSH có thể chứa hai bí danh máy chủ cho một địa chỉ, mỗi cái có hành vi proxy khác nhau. Đặt các khối cụ thể trước bất kỳ ký tự đại diện rộng nào, vì giá trị đầu tiên nhận được sẽ thắng với hầu hết tùy chọn.
Host proj-direct proj-bastion
HostName 10.60.0.21
User analyst
ControlPath none
Host proj-direct
ProxyJump none
Host proj-bastion
ProxyJump gw.example.com
Địa chỉ ở trên chỉ là ví dụ; thay bằng địa chỉ mà nhóm của bạn ghi lại. Bí danh nhảy cũng cần tài khoản đã được phê duyệt của bastion, thường có nghĩa là một khối Host thứ hai cho chính bastion. Tắt chia sẻ kết nối ở đây giữ cho việc so sánh đường đi trung thực, vì một kết nối ghép được dùng lại có thể sống lâu hơn thay đổi tuyến mà bạn đang cố quan sát.
Sau đó tên tệp từ xa vẫn riêng biệt và dễ đọc.
/ssh:proj-direct:/srv/project/README.md
/ssh:proj-bastion:/srv/project/README.md
Điều kiện ba: trình soạn thảo có biết sự khác biệt không?
TRAMP coi hai tên tệp đó là hai đích khác nhau, và đó chính là điều bạn muốn. Đánh dấu từng cái dưới một tên cho biết nó dùng đường nào, và mở lại dấu trang thay vì sửa ý nghĩa của một đích duy nhất. Hai dấu trang cũng làm cho việc so sánh hiển thị: bạn có thể mở cả hai và thấy cái nào thất bại mà không thay đổi cấu hình nào.
Một thiết lập đáng chú ý khi có ProxyJump: chia sẻ kết nối của TRAMP phải tắt cho các kết nối liên quan, nên đặt tramp-use-connection-share thành nil trước khi mở chúng. Đây là thiết lập tương thích, không phải bản sửa cho một tuyến bị thiếu, và nó không làm cho một đường không được phép trở thành được phép. Câu hỏi thường gặp của TRAMP ghi nhận dấu trang là cách được hỗ trợ để rút ngắn những tên này.
Một dấu trang âm thầm đổi tuyến còn tệ hơn không có dấu trang nào.
Vì sao biểu tượng mạng không chứng minh được gì
Giá trị trạng thái tổng thể 70 của NetworkManager nghĩa là máy có kết nối toàn cầu. Nó không nêu tên hồ sơ VPN nào, và Wi-Fi thông thường đáp ứng được nó. Một đường hầm chỉ dành cho mạng riêng mang đúng tuyến bạn cần có thể để nguyên giá trị tổng hợp đó. Đó là lý do một lối tắt gắn với biểu tượng có thể báo cáo sẵn sàng cho một đường mà nó chưa từng thử.
Hãy đọc trạng thái của kết nối cụ thể thay vì trạng thái toàn cầu.
Nếu bạn tự động hóa bất cứ điều gì, hãy truy vấn kết nối được đặt tên, rồi kiểm tra tuyến đích, câu trả lời của bộ phân giải và khả năng tiếp cận SSH theo thứ tự đó. Mỗi thứ trong số đó có thể thất bại khi cái trước thành công, và việc gộp chúng thành một giá trị boolean là cách tự động hóa cuối cùng báo cáo thành công cho một tuyến mà nó chưa bao giờ dùng.
Cần làm gì khi một đường ngừng hoạt động
Lưu bộ đệm trước khi điều tra, vì một phiên TRAMP hiện có có thể sống lâu hơn thay đổi tuyến rồi thất bại ở lần ghi tiếp theo. Đóng nó bằng quy trình dọn dẹp được hỗ trợ, mở lại dấu trang, và so sánh hai đường thay vì cho rằng máy chủ đang chết.
Giữ bật xác minh khóa máy chủ cho cả bastion và đích.
Một tuyến khác không cho bạn quyền chấp nhận một khóa máy chủ mà bạn không mong đợi, và cũng không làm cho một đường không được phê duyệt trở nên chấp nhận được. Cả hai đều là quyết định riêng so với quyết định bạn đang đưa ra.