Sử dụng ProxyCommand
Xem man ssh_config
. Tôi khuyên bạn nên sử dụng ProxyCommand
. Hãy lấy kịch bản ban đầu của bạn:
- Máy tính A (máy tính của bạn)
- Máy tính B (tên máy chủ proxy)
- Máy tính C (chỉ có thể truy cập qua SSH từ Máy tính B)
Chỉnh sửa ~/.ssh/config
với các nội dung sau.
Host computerb
HostName <hostname or IP of Computer B>
Host computerc 192.168.35.*
ProxyCommand ssh computerb nc -w 180 %h %p
Bây giờ bạn sẽ có thể truy cập trong suốt Máy tính C. ví dụ:
ssh computerc
Ưu điểm của phương pháp này
An toàn hơn
Bạn chỉ cần khóa riêng của mình trên Máy tính A (máy tính của bạn). Các nc
lệnh sẽ hoạt động như một proxy trong đó SSH sẽ mã hóa giao thông qua. Điều này bao gồm xác thực. Việc phân phối khóa riêng của bạn đến nhiều máy chủ là một ý tưởng rất tệ (vì bất kỳ máy chủ nào bị xâm phạm với khóa riêng của bạn đều làm tổn hại đến khóa riêng của bạn).
Trận đấu Nhiều điểm đến
Một có thể phù hợp với nhiều máy tính đích sử dụng Host
. Một máy tính hoặc bất kỳ máy tính nào trong một mạng cụ thể (ví dụ 192.168.35.0/24
trong ví dụ trên) để ủy quyền qua Máy tính B. Nó cũng đóng vai trò là bí danh.
ssh 192.168.35.27
Trong ví dụ trên, nó sẽ ủy quyền thông qua Máy tính B để đến địa chỉ IP.
Proxy chuỗi Daisy
Sử dụng phương pháp này, bạn có thể tạo chuỗi nhiều proxy tự động khi cần thiết. ví dụ: bạn có thể thêm Máy tính D chỉ có thể truy cập từ Máy tính C và nó sẽ hoạt động trong suốt.
Host computerd
ProxyCommand ssh computerc nc -w 180 %h %p
ssh computerd
sẽ tự động ủy quyền thông qua Máy tính C và Máy tính B trong các ssh_config
ví dụ trên .