CH-J Server Managerquản lý máy chủ qua SSH
Menu
Tất cả hướng dẫn và bài viết →

Cách kết nối qua máy chủ trung chuyển SSH (bastion)

Truy cập máy chủ nội bộ qua một hoặc nhiều máy chủ trung chuyển, xác minh mọi khóa máy chủ và tránh chuyển tiếp tác nhân.

Vai trò của máy chủ trung chuyển

Máy chủ trung chuyển, còn gọi là bastion, là máy chủ bạn có thể truy cập trực tiếp và có thể truy cập các máy chủ nội bộ của bạn. Chỉ cổng SSH của bastion được mở ra ngoài; các máy chủ nội bộ chỉ chấp nhận SSH từ mạng nội bộ. Với ProxyJump, máy khách mở một kết nối SSH đến bastion và một kết nối thứ hai được mã hóa đầu cuối xuyên qua bastion đến đích. Bastion chuyển tiếp lưu lượng nhưng không thấy nội dung phiên, còn khóa riêng vẫn nằm trên máy tính của bạn.

Kết nối từ dòng lệnh

Tùy chọn -J chỉ định máy chủ trung chuyển. Phân tách nhiều chặng bằng dấu phẩy; chúng được sử dụng theo đúng thứ tự bạn nhập. Thêm các thiết lập vào ~/.ssh/config nếu thường xuyên dùng cùng tuyến kết nối, để chỉ cần một bí danh ngắn.

ssh -J admin@bastion.example admin@app.internal
ssh -J admin@bastion.example,ops@hop2.example admin@app.internal

# ~/.ssh/config
Host app-internal
    HostName app.internal
    User admin
    ProxyJump admin@bastion.example

Xác minh mọi khóa máy chủ

Mỗi chặng là một máy chủ SSH riêng với khóa máy chủ riêng, vì vậy hãy xác nhận dấu vân tay của cả bastion và máy chủ đích qua một kênh đáng tin cậy khác. Khóa thay đổi ở bất kỳ chặng nào cũng cần được chú ý như khi kết nối trực tiếp. So sánh dấu vân tay được cung cấp trong lần kết nối đầu tiên với giá trị mà quản trị viên đọc trên máy chủ.

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256

Ưu tiên ProxyJump thay vì chuyển tiếp tác nhân

Chuyển tiếp tác nhân (ssh -A) cho phép bất kỳ ai có đủ quyền trên bastion sử dụng các khóa bạn đã nạp trong thời gian bạn kết nối. ProxyJump không cần chức năng này, vì việc xác thực với máy chủ đích diễn ra từ chính máy tính của bạn. Cũng nên tránh lưu khóa riêng trên bastion và giới hạn những người được phép đăng nhập vào đó.

Các lỗi thường gặp

Trước tiên hãy xác định chặng bị lỗi: kết nối riêng đến bastion, rồi chạy ssh -vvv với -J để xem kết nối dừng ở đâu. Nếu bastion hoạt động nhưng máy chủ đích không kết nối được, nguyên nhân thường là tường lửa giữa hai máy, tên nội bộ sai hoặc máy chủ đích không chấp nhận khóa của bạn. Máy chủ có cấu hình AllowTcpForwarding no sẽ từ chối làm máy chủ trung chuyển.

Máy chủ trung chuyển trong CH-J Server Manager

Alpha 0.1.1 kết nối qua máy chủ trung chuyển đã lưu hoặc được nhập thủ công; các máy chủ đã lưu có thể tạo thành chuỗi gồm tối đa ba máy chủ trung chuyển. Khóa máy chủ được kiểm tra ở mọi chặng. Trình giám sát tình trạng sẵn sàng chỉ kiểm tra máy chủ phía sau máy chủ trung chuyển qua một phiên đang mở đến máy chủ trung chuyển đó; nếu không có phiên này, máy chủ được hiển thị là chưa xác minh, tuyệt đối không là trực tuyến. Beta 0.1.0 không có tính năng này.

Tài liệu chi tiết

OpenSSH: ssh (-J) →

OpenSSH: ssh_config (ProxyJump) →

Mở khóa sinh trắc học và bảo mật →