SFTP trên máy chủ kép hop


15

Tôi đang cố gắng thực hiện một phương pháp để cho phép tôi truy cập các tệp trên máy chủ SFTP hơn là tôi không thể truy cập từ máy cục bộ của mình. Hiện tại, tôi phải SSH đến một máy chủ từ xa (nó nằm trong một khối IP nhất định mà máy chủ SFTP cuối cùng sẽ chấp nhận), sau đó từ SFTP đến máy chủ đích. Từ đó, tôi gửi getcác tệp mà tôi quan tâm, từ đó thả chúng vào máy chủ trung gian, từ đó tôi có thể nhận các tệp qua chia sẻ Samba hoặc trực tiếp scp. Tôi cũng làm việc ngược lại, nơi tôi thả các tệp vào người trung gian, SSH tới nó sau đó SFTP đến đích và putchúng vào các thư mục thích hợp.

Mục tiêu của tôi là rút ngắn điều này. Những hạn chế đáng tiếc là máy của tôi là Windows (tôi sử dụng KiTTy và / hoặc Cygwin) và tôi không thể sửa đổi máy chủ trung gian (hoặc máy chủ đích) theo bất kỳ cách nào. Tôi sẵn sàng sử dụng các dòng lệnh hoặc chương trình GUI miễn là nó hoạt động và miễn phí.

Có ý kiến ​​gì không?

Câu trả lời:


24

Về bản chất, không có GUI hoặc các tiện ích khác:

ssh -o ProxyCommand='ssh myfirsthop nc -w 10 %h %p' mydestination

Bạn có thể đặt mặc định này bằng cách chỉnh sửa tệp cấu hình, theo mặc định ~ / .ssh / config

Host mydestination, mydest2, mydest3
ProxyCommand ssh myfirsthop nc -w 10 %h %p

Điều này sau đó cho phép bạn làm

ssh mydestination
scp mydest2:file.txt ./
scp file.txt mydest3:/tmp/

Tất nhiên, với loại phép thuật đó bạn có thể dễ dàng

mkdir -pv /tmp/mydest3tmp          # create mountpoint
sshfs mydest3:/tmp /tmp/dest3tmp/  # mount :)

Trên các cửa sổ, bạn sẽ sử dụng WinSCP đi kèm với (Tôi nghĩ là IIRC) PLINK (từ bộ Putty). Tôi cho rằng vị trí mặc định cho configtệp ssh là khác nhau (tôi phải google cho nó), nhưng tôi chắc chắn rằng nó hoạt động ít nhiều giống nhau.

Lưu ý rằng điều duy nhất bạn cần để làm việc này là 'netcat ( nc)' trên máy chủ giữa (bước nhảy đầu tiên). Nó là một công cụ phổ biến trên linux / UNIX [1]; Khá dễ dàng để xây dựng một phiên bản liên kết tĩnh nên hoạt động nếu bạn có thể sao chép nó ở đó ngay từ đầu.

[1] lưu ý rằng có một số hương vị, vì vậy tùy chọn -w có thể cần phải được bỏ / đánh vần khác nhau


1
Thưa ngài, không biết làm thế nào điều này làm tôi hạnh phúc :) Hoàn hảo!
josh.trow

@ josh.trow: Không, nhưng tôi rất vui vì bạn đã nói với tôi :) Bất cứ lúc nào
sehe

Mặc dù, như @ josh.trow đã tìm thấy, WinSCP có tính năng tạo đường hầm được tích hợp (xem câu trả lời khác), nếu bạn thực sự cần sử dụng thiết lập đường hầm bởi một ứng dụng bên ngoài, đây là hướng dẫn: woncp.net/eng/docs/ guide_tunnel
Martin Prikryl

9

Tôi sẽ không đặt câu trả lời này là câu trả lời được chấp nhận vì tôi sẽ không bao giờ tìm thấy nó nếu không có @sehe và @Jakub, nhưng đây là những gì tôi thấy giúp đơn giản hóa mọi thứ ...

WinSCP có khả năng sử dụng đường hầm SSH tích hợp. Tôi không biết khi nào tính năng này xuất hiện, nhưng tôi chưa bao giờ nhận thấy nó trước đây.

Cài đặt đường hầm WinSCP


Tài liệu về tính năng đường hầm: woncp.net/eng/docs/tunnelingwoncp.net/eng/docs/ui_login_tunnel
Martin Prikryl

làm việc trong filezilla quá!
Hayden Thring

tính năng này chỉ cho phép đường hầm duy nhất ... làm thế nào để thêm đường hầm thứ 2?
zeetit

@zeetit Sau đó, bạn phải sử dụng một đường hầm bên ngoài. Tất cả các tùy chọn đường hầm được ghi lại trong hướng dẫn WinSCP về đường hầm .
Martin Prikryl

2

Một trong những gợi ý của tôi là tạo proxy vớ bằng cách sử dụng putty (từ hộp cửa sổ của bạn), sau đó ủy quyền ứng dụng khách SFTP của bạn qua nó (giả sử Filezilla sftp).

Bạn sẽ không cần phải làm bất cứ điều gì đặc biệt theo cách đó, chỉ cần bật proxy vớ put5 của bạn và bật filezilla, và gửi các tệp của bạn đến máy chủ đích.

(you ==socks5 proxy==> middle server) ==> destination server

Có vẻ như bạn đang giải quyết một vấn đề khác, một vấn đề khó khăn hơn thực sự. Vấn đề của OP là đích đến cuối cùng không thể định tuyến được từ máy khách - lưu lượng SSH đi là ổn. ( Tôi tin rằng giải pháp của bạn là cần thiết để 'đường hầm' lưu lượng SSH qua proxy? )
sehe

@sehe .. cái gì? Bạn thiết lập proxy SSH vớ 5 (đường hầm ssh vào hộp giữa), sau đó bạn chỉ cần ủy quyền lưu lượng SFTP của mình đến hộp đích, bằng cách giả mạo là máy chủ giữa. Tôi đang giải quyết vấn đề nào khác?
Jakub
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.