সার্ভার থেকে দুই ধাপ দূরে ফাইলগুলি [বন্ধ] পান


14

আমাদের নিম্নলিখিত পরিস্থিতি রয়েছে:

  1. আমার যন্ত্র
  2. একটি গেটওয়ে মেশিন
  3. লক্ষ্য মেশিন

আমার # 2 এবং # 3 উভয়েরই কোনও মূল অধিকার নেই। আমি # 2 মেশিনে সত্যিই তথ্য (200 তত্ক্ষণাত মাইবি) আর সঞ্চয় করতে পারি না (যেহেতু এটি নেটওয়ার্কের বাকী অংশের প্রবেশদ্বার হওয়াই মজাদার, তার চেয়ে বেশি নয়) not মেশিনে # 3 এ একটি ফোল্ডার রয়েছে, প্রায় 3 GiB আকারের, যা আমি লোকালটিতে অনুলিপি করতে চাই। আমি # 1 থেকে # 3 পর্যন্ত এসএসএইচ করতে পারি না, তবে আমি এসএসএইচ থেকে # 2 এবং তারপরে # 3 এ করতে পারি। # 2 এবং # 3 এর মধ্যে একটি পাবলিক প্রাইভেট কিপায়ার সেট আপ করাও সম্ভব নয়, তবে এখানে # 1 এবং # 2 এর মধ্যে একটি কীপায়ের স্থাপন করা আছে।

এটি সম্পাদন করার জন্য সাধারণত আমি এসএসএইচ এবং টারের সংমিশ্রণটি ব্যবহার করি:

ssh name@host "tar cf - folder" > folder.tar

তবে এক্ষেত্রে এর জন্য একরকম বাসা বাঁধার দরকার হবে এবং আমি এটি সম্পন্ন করে বলে মনে করতে পারি না।

সুতরাং, # 3 থেকে # 1 পর্যন্ত ডেটা পাওয়ার ভাল উপায় কী হবে?

উত্তর:


27

আপনি মেশিন 2 এর মাধ্যমে এসএসএইচ টানেল তৈরি করতে পারেন তারপরে অন্য সেশনে টানেলের সাথে সংযোগ স্থাপন করুন।

উদাহরণস্বরূপ, মেশিন 1 এ দুটি সিএলআই সেশন খুলুন। প্রথম সেশনে নিম্নলিখিতগুলি চালান:

MACHINE1$ ssh -L 2022:MACHINE3:22 <user>@MACHINE2

দ্বিতীয় অধিবেশনে নিম্নলিখিতটি চালান:

MACHINE1 $ ssh -p 2022 <user>@localhost

প্রথম কমান্ডটি যা ঘটছে তা হল একটি স্থানীয় বন্দর (মেশিন 1 তে 2022) মেশিন 2 এ আপনার এসএসএইচ সংযোগটি ব্যবহার করে মেশিন 3 তে 22 পোর্টে টানেল করা হচ্ছে।

দ্বিতীয় কমান্ডের সাহায্যে আপনি সদ্য খোলা লোকাল বন্দরের সাথে সংযোগ করছেন (2022) এবং এটির মতো আপনি সরাসরি মেশিন 3-এ সংযোগ করছেন।

এখন আপনি যদি আপনার সাধারণ ফাইল স্থানান্তর প্রক্রিয়াটি ব্যবহার করতে চান তবে আপনি নিম্নলিখিতগুলি করতে পারেন:

ssh -p 2022 <user>@localhost "tar cf - /path/to/remote/directory/" > filename.tar

বিকল্পভাবে, আপনি আরএসসিএন-এর সাথে নিজেকে পরিচিত করতে পারেন এবং পরিবর্তে এর মতো কিছু করতে পারেন:

rsync -aHSv --progress -e 'ssh -p 2022' <user>@localhost:/path/to/remote/directory/ /path/to/local/directory/

শেষ লক্ষ্যটি ধরে নেওয়া কোনও টারবাল পাওয়ার নয় isn't


2
ব্যবহার ProxyCommandএবং ssh -Wদুটি sshকমান্ড একক কমান্ড লাইনে একত্রিত করা যেতে পারে। যদি আপনার ওপেনএসএসএইচ ক্লায়েন্টের অতি সাম্প্রতিক সংস্করণ থাকে তবে একটি যুক্তি রয়েছে যা আপনাকে একক sshকমান্ড দিয়ে এটি করতে দেয় ।
ক্যাস্পারড


আমি টার ব্যবহার করি কারণ অনেকগুলি ফাইল স্থানান্তর করতে আরও একটি বড় ফাইল স্থানান্তর করতে আরও সময় লাগে। আরএসসিএনসি কি এটি সমাধান করে?
চেরন 12

রিমোট ট্রান্সফার করার সময় আরএসসিএনসি ট্রান্সজিটে ডেটা চেকসাম করে (গ্রহণের শেষে, এটি ডিস্কে লেখার আগে), তাই কোনও ফাইল স্থানান্তর করতে আরও সময় লাগবে। যাইহোক, সময় ভাল ব্যয়।
জিন

5

আপনি এসএসএইচের নতুন সংস্করণগুলির মাস্টার সেশন ক্ষমতাও ব্যবহার করতে পারেন। এটি এখানে বর্ণিত:

https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing

সম্ভবত আপনার যা প্রয়োজন তা হ'ল আপনার .ssh / কনফিগারেশন সম্পাদনা / তৈরি করা। মাস্টার সেশনগুলি নিয়ন্ত্রণ করে এমন সংজ্ঞা যুক্ত করুন:

ControlMaster auto
ControlPath ~/.ssh/cm_socket/%r@%h:%p
ControlPersist 4h
ServerAliveInterval 30

তারপরে আপনি আপনার প্রথম হপ সার্ভার সংজ্ঞাটি নির্দিষ্ট করতে পারবেন:

Host first_hop
Hostname <your first host FQDN or IP>
User <your user>

এবং দ্বিতীয় হপ আপনার প্রথম হপ সার্ভারটিকে প্রক্সি হিসাবে ব্যবহার করবে:

Host second_hop
Hostname <your second host FQDN or IP>
User <your user>
ProxyCommand ssh -W %h:%p first_hop

Create / .ssh / সেমি_সকেট ডিরেক্টরি তৈরি করতে ভুলবেন না এবং কনফিগার অনুমতিগুলি 644 হওয়া উচিত।

তারপরে আপনার নিজের দ্বিতীয় সার্ভার থেকে সরাসরি / এসএসএইচ বা এসসিপি সক্ষম হওয়া উচিত। এই জাতীয় শৃঙ্খলযুক্ত আরও সার্ভার থাকতে পারে।


3
আপনার লিঙ্কটি পড়া থেকে, আমি মনে করি না যে প্রক্সিংয়ের ControlMasterজন্য মাল্টিপ্লেক্সিং / প্রয়োজন। উইকিবুকের
IMSoP

হ্যা আমি রাজি. একাধিক উপায় আছে। তবে আমি মাস্টার সেশনকে সবচেয়ে মার্জিত মনে করি। এটি কেবলমাত্র ব্যক্তিগত পছন্দসমূহ ;-)
জারোস্লাভ কুসেরা

আমাদের মধ্যে একজন বা অন্য কিছু ভুল বুঝেছিল। আমি যতদূর দেখতে পাচ্ছি, "মাস্টার সংযোগ" নেটওয়ার্ক সংস্থানগুলির দক্ষভাবে ব্যবহার করা সম্পর্কে, এবং এই প্রশ্নের সাথে কোনও সম্পর্ক নেই। এটি করার আলাদা উপায় নয়, এটি হাতের কাজটির সাথে কেবল অপ্রাসঙ্গিক।
আইএমএসওপি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.