আমি কি একটি মধ্যবর্তী সার্ভারে sftp করা উচিত?


11

আমি সরাসরি কোনও নির্দিষ্ট হোস্টে এসফ্টপ করতে পারি না। হোস্টে আমার হোম মেশিন থেকে কোনও ফাইল স্থানান্তর করতে, আমাকে অবশ্যই একটি মধ্যবর্তী হোস্টে একটি ফাইল স্যুটফাই করতে হবে; মধ্যবর্তী হোস্টে ssh; এবং চূড়ান্ত গন্তব্যে ফাইল sftp। এ জাতীয় উন্মাদনা এড়ানো কি সম্ভব?

উত্তর:


28

আপনার স্থানীয় মেশিন থেকে আপনি মধ্যবর্তী হোস্টের মাধ্যমে চূড়ান্ত হোস্টে এম এস এস টানেল তৈরি করতে পারেন:

ssh user@intermediate -L 2000:final:22 -N

এটি আপনার লোকালহোস্টে 2000 পোর্ট খুলবে যা মধ্যবর্তী হোস্টের মাধ্যমে টানেল দিয়ে 22 পোর্টে সরাসরি চূড়ান্ত সার্ভারের সাথে সংযুক্ত হবে। চূড়ান্ত সার্ভারের মাধ্যমে টানেল করার জন্য এখন অন্য একটি প্রম্পটে 2000 পোর্টে sftp এর সাথে সংযোগ স্থাপন করুন, এখানে উল্লেখ করা ব্যবহারকারী চূড়ান্ত হোস্টের জন্য উল্লেখ করে:

sftp -P 2000 user@localhost

মনে হয় এই জন্যে মত superuser.com বা serverfault.com যদিও।


ধন্যবাদ, আমি চেষ্টা করব; এবং আপনি ঠিক বলেছেন এটি ভুল ফোরাম; দুঃখিত।

ব্যবহারকারীকে @ লোকালহোস্ট পাসওয়ার্ড দেওয়ার পরে আমি বার্তাটি পেয়েছি: প্রাপ্ত বার্তাটি খুব দীর্ঘ 1131376238
ইউজার 74094

14

আপনি এসএসএইচ সংযোগের উপর একটি এসএফটিপি সংযোগটি স্বচ্ছভাবে সুড়ঙ্গ করতে এসএফটিপি'র প্রক্সিকম্যান্ড বিকল্পটি ব্যবহার করতে পারেন (হোয়াইটফ্যাং 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 ফাইনালহোস্টে ব্যবহার করতে পারেন এবং এটি স্বয়ংক্রিয়ভাবে টানেলটি শুরু করবে। একমাত্র অনানুষ্ঠানিক অংশটি হ'ল এটি দুটি পাসওয়ার্ডের জন্য অনুরোধ জানাবে (ইন্টারমিডিয়েস্টের পরে ফাইনালহোস্ট), তবে আপনি যদি চান তবে এসএসএইচ কীপাইয়ারগুলি সহ আপনি এটিও মুছে ফেলতে পারবেন ...


ধন্যবাদ গর্ডন এটি উভয় পাসওয়ার্ডের পরে বার্তাটি থামিয়ে দেয়: প্রাপ্ত বার্তাটি খুব দীর্ঘ 1131376238
ইউজার 74094

এটি সংযোগের মতো কিছু বলে মনে হচ্ছে - হোস্টগুলির মধ্যে একটিতে হয়ত একটি লগইন স্ক্রিপ্ট, সম্ভবত এনসি - সংযোগের জন্য কিছু অতিরিক্ত পাঠ্য লিখছে যা বিভ্রান্তিকর Sftp ( snailbook.com এ এই FAQ দেখুন )। 1131376238 হ'ল অসি অক্ষর "কান" এর দশমিক এনকোডিং, সুতরাং এটি সম্ভবত "সংযুক্ত হচ্ছে ..." "থেকে সংযুক্ত ..." বা "সংযোগ ব্যর্থ হয়েছে" এর মতো একটি বার্তা। এসএফটিপি-এর পরিবর্তে এসএসএস দিয়ে চেষ্টা করে দেখুন, বার্তাটি দৃশ্যমানভাবে মুদ্রিত হয়েছে কিনা এবং সম্ভবত আপনি বলতে পারেন যে এটি কোথা থেকে এসেছে।
গর্ডন ডেভিসন

ssh ভাল কাজ করে। আমার আরও উল্লেখ করা উচিত যে আমি প্রায়শই এই প্রশ্নের মুখোমুখি হয়েছি: হোস্ট 'এক্সএক্সএক্সএক্সএক্সএক্সএক্স (<প্রক্সি কমান্ডের জন্য কোনও হোস্টিপ>)' প্রতিষ্ঠিত হতে পারে না। আরএসএ কী আঙ্গুলের ছাপ 37: 40: d4: c7: ইত্যাদি .. আপনি কি নিশ্চিত যে সংযোগ চালিয়ে যেতে চান (হ্যাঁ / না)? হ্যাঁ
user74094

গর্ডন, খুব দরকারী! আমি এটিকে আমার কমান্ড লাইন ফু অনেলাইনারগুলির পাঠ্য ফাইলে যুক্ত করছি। অসংখ্য ধন্যবাদ!
ট্র্যাভিস লেলেউ

Is execপ্রয়োজনীয়? (এটি অংশ ছাড়াই এখানে দুর্দান্ত কাজ করে))
সমানভাবে

3

আপনি আপনার মেশিনে চলমান ssh প্রসেসের ডেটা পাইপ করতে পারেন, তারপরে ইন্টারমিডিয়েট মেশিনে একটি কমান্ড চালান যা স্টিডিন পড়ে এবং যথাযথ হিসাবে এসএফটিপিতে প্রেরণ করে।

এটি আপনার স্থানীয় মেশিনের অনলাইনারে করা যেতে পারে, যদিও এসএসএসে আর্গুমেন্টের উদ্ধৃতিতে যত্নের প্রয়োজন হবে। আমি এখনই আমার ফোনে আছি তাই দুর্ভাগ্যক্রমে বিশদটি টাইপ করতে পারছি না। অনুশীলন হিসাবে সম্ভবত অন্য কেউ এই উত্তরটি সম্পূর্ণ করতে পারেন!


0

আমি ধরে নিচ্ছি যে চূড়ান্ত হোস্টটি ফায়ারওয়ালড এবং আমি কেবলমাত্র সেই পদ্ধতিগুলিতেই অনুমান করতে পারি যা আপনি তার চারপাশে যেতে ব্যবহার করতে পারেন।

উদাহরণস্বরূপ - আপনার স্থানীয় মেশিন থেকে ssh প্রকাশ করুন, তারপরে প্রথম হোস্টে ssh, তারপরে দ্বিতীয়টিতে ssh এবং চূড়ান্ত হোস্ট থেকে আপনার মেশিনে sftp p


0

বলি যে এ এবং বি প্রথম এবং দ্বিতীয় হোস্ট। এবং ফাইলটি অনুলিপি করা foo হয়

Sftp পরিবর্তে, আপনি নিম্নলিখিত ব্যবহার করতে পারেন

বিড়াল foo | ssh A "cat -> foo"

এখন, আপনি একসাথে ডাইজি-চেইন 2 করতে পারেন

বিড়াল foo | ssh A "cat - | ssh B cat" cat -> foo \ ""


আমি এটি পছন্দ করি, তাই আমি এটি চেষ্টা করেছিলাম। এটি এ এর ​​জন্য পাসওয়ার্ড নিয়েছে, তারপরে বার্তাটি তৈরি করেছে: হোস্ট কী যাচাইকরণ ব্যর্থ হয়েছে।
ব্যবহারকারী74094
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.