অন্তর্বর্তী হোস্টের মাধ্যমে সুরক্ষিতভাবে টানেল বন্দর


23

আমি এখানে ভিএনসির জন্য আমার বাসায় ফিরে একটি বন্দরের দিকে যেতে চাইছি। আমার আসল ওয়ার্ক মেশিনে যেতে তখন আমাকে একক হোস্টের উপরে ঝাঁপিয়ে পড়তে হবে।

  • sittinghere আমার স্থানীয় হোম মেশিন হবে
  • hopper মধ্যবর্তী হ্যাপ দ্বারা আমার করা প্রয়োজন হবে
  • overthere দূরবর্তী কাজ মেশিন হবে

আমি আমার ওয়ার্ক মেশিনে এসএসএইচে এটি করতে পারি:

ssh -t hopper "ssh -t overthere"

আমি 5900 অন overthereস্থানীয় পোর্টে দূরবর্তী পোর্ট 5900 ফরোয়ার্ড করতে পোর্ট ফরওয়ার্ডিং ব্যবহার করতে চাই sittinghere। যাইহোক, আমি এই বন্দুকের সাথে খোলাখুলিভাবে কোনও বাঁধাই ছাড়াই এটি করতে সক্ষম হতে চাই hopperকারণ সেই মেশিনের যে কোনও ব্যক্তি আমার ভিএনসি সংযোগের সাথে সংযুক্ত করতে সক্ষম হবে।

আমার পক্ষে কোনও কোনওরই অ্যাক্সেস পেতে সক্ষম না করে নিরাপদভাবে সেই স্থানীয় বন্দরে আমার স্থানীয় মেশিনে ফরোয়ার্ড করার কোনও উপায় আছে hopper?


আপনি কোন ভিএনসি ক্লায়েন্ট ব্যবহার করছেন?
slm

উত্তর:


18

পোর্টগুলি ফরোয়ার্ড করার জন্য এসএসএইচের স্থানীয় ক্ষমতা ব্যবহার করা। sittinghereসম্পাদন থেকে :

 ssh -v -N -L 5900:overthere:5900 user@hopper

আপনার ভিএনসি ক্লায়েন্টকে নির্দেশ করুন localhost:5900এবং overthere:5900এসএসএইচ সংযোগের মাধ্যমে ট্র্যাফিকটি সুরক্ষিত করা হবেhopper


1
আফাইক, এই টানেলটি আপনাকে সহায়তা করবে না যদি 5900 টি কেবলমাত্র স্থানীয় (127.0.0.1) ইন্টারফেসে আবদ্ধ থাকে, কারণ টানেলটি ঘটবে hopperএবং তারপরে hopperসমস্ত ট্র্যাফিকের দিকে এগিয়ে চলে overthere:5900। যদি প্রদত্ত ইন্টারফেসটি overthere:5900শুনছেন 0.0.0.0বা শুনছেন তবে এটি কাজ করবে, তবে এটি যদি শুনছে তবে তা নয় 127.0.0.1
নাফতুলি কে ২

18

~/.ssh/configএটি ঘটতে আমি কিছু এসএসএইচ হ্যাক ব্যবহার করে শেষ করেছি :

Host hopper
    User naftuli
    ForwardAgent yes

Host overthere
    User naftuli
    ForwardAgent yes
    ProxyCommand ssh -q hopper nc overthere 22

কি এই আছে যে, যখন আমি সাথে সংযোগ স্থাপনের জন্য প্রচেষ্টা ssh overthereথেকে sittinghere, এটা সাথে সংযোগ করে hopperএবং তারপর বন্দর 22 SSH সংযোগ প্রক্সি overthere(: চালু, SSH অর্থাত overthere)।

এর কিছু দুর্দান্ত প্রভাব আছে:

ssh -L 5900:localhost:5900 overthere "x11vnc -display :0 -localhost"

সবকিছু দুর্দান্ত কাজ করে এবং যতদূর আমি বলতে পারি, 5900 খোলা হয়নি hopper, কেবল থেকে সরাসরি ফরওয়ার্ড করা overthereহয়েছে sittinghere


ঘটনাক্রমে, আমার আগে মন্তব্যগুলিতে এটি জিজ্ঞাসা করা উচিত ছিল তবে আপনি যে সমাধানে হোঁচট খেয়েছেন তা x11nvc ম্যান পৃষ্ঠা 8- এর মধ্যেই রয়েছে) দুঃখিত আপনি কোন ভিএনসি সার্ভারটি ব্যবহার করছেন তা জিজ্ঞাসা করার জন্য আমি ভাবি নি।
slm

এটি আমার থেকে বেরিয়েজকে ভয় দেখায় তবে এটি অবশ্যই কার্যকর হয়!
ডেল অ্যান্ডারসন

1
কিছু লিনাক্স ডিস্ট্রোজে (উদাঃ উবুন্টু 14.04) ডিফল্টভাবে নেটক্যাট-ওপেনবিএসডি ইনস্টল করা হয়। এই ক্ষেত্রে এই হ্যাক কাজ নাও করতে পারে। এই সমস্যাটি সমাধানের জন্য আপনার প্রথমে নেটকাট-ট্র্যাডিশনাল প্যাকেজ ইনস্টল করা উচিত apt-get install netcat-traditional -y। তারপর আপনি স্পষ্টভাবে উল্লেখ করা উচিত ncকনফিগ ফাইল টাইপ করুন (প্রতিস্থাপন ncসঙ্গে nc.traditional)।
VeLKerr

@ নাফতুলি: সত্যিই দুর্দান্ত!
গেছে

1
@AlexanderPozdneev netcat
টেলরথার্লো

1

আপনার পক্ষ থেকে একটি বন্দর ফরোয়ার্ড করতে পারেন sittinghereকরার overthereমাধ্যমে এর, SSH পোর্ট hopper। তারপরে আপনি সেই বন্দরটি overthereসরাসরি থেকে পৌঁছাতে ব্যবহার করতে পারেন sittinghere। এই দ্বিতীয় এসএসএইচ অধিবেশনে আপনি ভিএনসি বা অন্য যে কোনও পোর্ট আপনার পছন্দ মতো ফরোয়ার্ড করতে পারেন যখন hopperকেবল একটি এনক্রিপ্ট করা এসএসএইচ সেশন দেখেন।

প্রথম এসএসএইচ অধিবেশন:

ssh -f -N -L 7022:overthere:22 hopper

এখন SSH ক্লায়েন্ট বলবেন কীভাবে পৌঁছতে পারে overthereএই কনফিগ যোগ করে ~/.ssh/configউপরsittinghere

Host overthere
    HostName hopper
    Port 7022
    HostKeyAlias overthere

দ্বিতীয় এসএসএইচ অধিবেশন:

ssh -f -N -L 5900:localhost:5900 overthere

বা ভিএনসি পোর্ট টানেল ছাড়াই কেবল একটি নিয়মিত ইন্টারেক্টিভ এসএসএইচ সেশন:

ssh overthere

আপনি যদি লাইন যুক্ত করে বিরক্ত করতে না চান তবে আপনি কমান্ড লাইন থেকে ~/.ssh/configকীভাবে সংযোগ স্থাপন করবেন তা এটি বলতে পারেন overthere:

ssh -p 7022 hopper

... তবে HostKeyAliasএসএসএইচ ছাড়া overthereকী এর ফিঙ্গারপ্রিন্টটি সঠিকভাবে যাচাই করবে না ।

সমস্ত কমান্ড লাইনগুলি চালানো উচিত sittinghere

ঘটনাক্রমে, আমি আপনি সম্ভবত ব্যবহার করা প্রয়োজন হবে না মনে ssh'র -tবিকল্প।


1

কর্মী এবং বাড়ির পিসির মধ্যে টানেল তৈরির সময় প্রথমে হপার সংযোগ করুন।

ssh -f ismail@hopper -L 2222:overthere:22 -N

তারপরে vnc টানেল দিয়ে ssh আর ওভারথের করুন

ssh -p 2222 -f ismail@localhost -L 5900:localhost:5900

এখন আপনি vnc এর সাথে সংযোগ করতে পারেন। লোকহোস্ট শোনার জন্য ভিএনসি-র কনফিগারেশনটি পরিবর্তন করুন


0

আপনি যদি vncviewerকমান্ড লাইন থেকে ভিএনসি ক্লায়েন্ট ব্যবহার করছেন তবে আপনি অন্য কোনও হোস্টের ভিএনসি সার্ভারের সাথে সংযোগ স্থাপনের পূর্বে -viaসুড়ঙ্গ করতে বলার জন্য সুইচটি ব্যবহার করতে পারেন user@host

উদাহরণ

$ vncviewer -via user@host localhost:0

আপনি vinagreজিইউআইয়ের মাধ্যমে এসএসএইচ টানেলের মাধ্যমে সংযোগ করতেও ব্যবহার করতে পারেন। এটি করার জন্য সংযোগ ডায়ালগের মাধ্যমে আপনার সংযোগটি এটির মতো সেট আপ করুন vinagre:

              এসএস # 1

যার ফলে আপনার সংযোগটি এসএসএইচ টানেল হোস্টের মাধ্যমে সংযুক্ত হয়ে আসে।

    এসএস # 2

তথ্যসূত্র


0

নিম্নলিখিত কমান্ডও নিখুঁতভাবে কাজ করা উচিত

ssh -f -N -J hopper overthere -L 5900:localhost:5900

postgres-serverকাস্টমাইজড পোর্ট ( -pস্যুইচ) এ পোস্টগ্রিএসকিউএল সার্ভারটি সংযুক্ত করতে এবং অতিরিক্ত স্বনির্ধারিত ব্যবহারকারীর নাম ব্যবহার করে এটি অতিরিক্ত প্যারামিটার দিয়ে পরীক্ষা করা হয়েছিল ।

ssh -f -N -J user1@jumphost -p 2222 user2@postgres-server -L 5432:localhost:5432

আপনি দেখতে পাচ্ছেন যে সমাধানটি সহজ এবং এর জন্য এসএসএসের কোনও কনফিগারেশন পরিবর্তন বা কোনও মধ্যবর্তী পদক্ষেপের প্রয়োজন নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.