Bạn có thể sử dụng tùy chọn ProxyCommand của SFTP để đường hầm một cách rõ ràng kết nối SFTP qua kết nối SSH (hơi giống với câu trả lời của WhiteFang34, nhưng qua stdin & stdout của kết nối SSH, thay vì cổng TCP cục bộ được chuyển tiếp):
sftp -o "ProxyCommand=ssh -e none user@intermediatehost exec /usr/bin/nc %h %p 2>/dev/null" user@finalhost
(Giả sử máy chủ trung gian đã cài đặt netcat là / usr / bin / nc - nếu không, bạn có thể phải tìm / cài đặt một số cách tương tự để chuyển stdin & stdout vào phiên TCP.)
Điều thực sự thú vị về tùy chọn này là bạn có thể thêm nó vào tệp ~ / .ssh / config, điều này làm cho nó trong suốt:
Host finalhost
ProxyCommand ssh -e none user@intermediatehost exec nc %h %p 2>/dev/null
Với mục nhập đó, bạn có thể sử dụng sftp, scp và ssh để Finalhost và nó sẽ tự động gọi đường hầm. Phần không trong suốt duy nhất là nó sẽ nhắc hai mật khẩu (trung gian được theo sau bởi Finalhost), nhưng nếu bạn muốn, bạn cũng có thể loại bỏ điều đó bằng khóa bàn phím SSH ...