উত্তর:
আপনার স্থানীয় মেশিন থেকে আপনি মধ্যবর্তী হোস্টের মাধ্যমে চূড়ান্ত হোস্টে এম এস এস টানেল তৈরি করতে পারেন:
ssh user@intermediate -L 2000:final:22 -N
এটি আপনার লোকালহোস্টে 2000 পোর্ট খুলবে যা মধ্যবর্তী হোস্টের মাধ্যমে টানেল দিয়ে 22 পোর্টে সরাসরি চূড়ান্ত সার্ভারের সাথে সংযুক্ত হবে। চূড়ান্ত সার্ভারের মাধ্যমে টানেল করার জন্য এখন অন্য একটি প্রম্পটে 2000 পোর্টে sftp এর সাথে সংযোগ স্থাপন করুন, এখানে উল্লেখ করা ব্যবহারকারী চূড়ান্ত হোস্টের জন্য উল্লেখ করে:
sftp -P 2000 user@localhost
মনে হয় এই জন্যে মত superuser.com বা serverfault.com যদিও।
আপনি এসএসএইচ সংযোগের উপর একটি এসএফটিপি সংযোগটি স্বচ্ছভাবে সুড়ঙ্গ করতে এসএফটিপি'র প্রক্সিকম্যান্ড বিকল্পটি ব্যবহার করতে পারেন (হোয়াইটফ্যাং 34 এর উত্তরের সাথে কিছুটা অনুরূপ, তবে এসএসএইচ সংযোগের স্টিডিন ও স্টাডআউটের উপরে, ফরওয়ার্ড প্রাপ্ত স্থানীয় টিসিপি পোর্টের চেয়ে):
sftp -o "ProxyCommand=ssh -e none user@intermediatehost exec /usr/bin/nc %h %p 2>/dev/null" user@finalhost
(এটি ধরে নিচ্ছে যে মধ্যবর্তী হোস্টের / / usr / bin / nc হিসাবে নেটকাট ইনস্টল করা আছে - যদি তা না হয় তবে আপনাকে কোনও টিসিপি সেশনে গেটওয়েং স্টিডিন এবং স্টাডআউটের সমতুল্য উপায় খুঁজে পেতে / ইনস্টল করতে হতে পারে))
এই বিকল্পটি সম্পর্কে সত্যিই দুর্দান্ত যা আপনি এটি আপনার ~ / .ssh / config ফাইলটিতে যুক্ত করতে পারেন যা এটি স্বচ্ছ করে তোলে:
Host finalhost
ProxyCommand ssh -e none user@intermediatehost exec nc %h %p 2>/dev/null
এই প্রবেশের মাধ্যমে আপনি sftp, scp এবং ssh ফাইনালহোস্টে ব্যবহার করতে পারেন এবং এটি স্বয়ংক্রিয়ভাবে টানেলটি শুরু করবে। একমাত্র অনানুষ্ঠানিক অংশটি হ'ল এটি দুটি পাসওয়ার্ডের জন্য অনুরোধ জানাবে (ইন্টারমিডিয়েস্টের পরে ফাইনালহোস্ট), তবে আপনি যদি চান তবে এসএসএইচ কীপাইয়ারগুলি সহ আপনি এটিও মুছে ফেলতে পারবেন ...
exec
প্রয়োজনীয়? (এটি অংশ ছাড়াই এখানে দুর্দান্ত কাজ করে))
আপনি আপনার মেশিনে চলমান ssh প্রসেসের ডেটা পাইপ করতে পারেন, তারপরে ইন্টারমিডিয়েট মেশিনে একটি কমান্ড চালান যা স্টিডিন পড়ে এবং যথাযথ হিসাবে এসএফটিপিতে প্রেরণ করে।
এটি আপনার স্থানীয় মেশিনের অনলাইনারে করা যেতে পারে, যদিও এসএসএসে আর্গুমেন্টের উদ্ধৃতিতে যত্নের প্রয়োজন হবে। আমি এখনই আমার ফোনে আছি তাই দুর্ভাগ্যক্রমে বিশদটি টাইপ করতে পারছি না। অনুশীলন হিসাবে সম্ভবত অন্য কেউ এই উত্তরটি সম্পূর্ণ করতে পারেন!
আমি ধরে নিচ্ছি যে চূড়ান্ত হোস্টটি ফায়ারওয়ালড এবং আমি কেবলমাত্র সেই পদ্ধতিগুলিতেই অনুমান করতে পারি যা আপনি তার চারপাশে যেতে ব্যবহার করতে পারেন।
উদাহরণস্বরূপ - আপনার স্থানীয় মেশিন থেকে ssh প্রকাশ করুন, তারপরে প্রথম হোস্টে ssh, তারপরে দ্বিতীয়টিতে ssh এবং চূড়ান্ত হোস্ট থেকে আপনার মেশিনে sftp p
বলি যে এ এবং বি প্রথম এবং দ্বিতীয় হোস্ট। এবং ফাইলটি অনুলিপি করা foo হয়
Sftp পরিবর্তে, আপনি নিম্নলিখিত ব্যবহার করতে পারেন
বিড়াল foo | ssh A "cat -> foo"
এখন, আপনি একসাথে ডাইজি-চেইন 2 করতে পারেন
বিড়াল foo | ssh A "cat - | ssh B cat" cat -> foo \ ""