আমি কীভাবে অন্য পিসির মাধ্যমে ssh ব্যবহার করে একটি পিসির সাথে সংযুক্ত করব


13

আমার কাছে তিনটি কম্পিউটার রয়েছে।

PC1 এবং PC2 একটি প্রাইভেট ল্যান, যেখানে রয়েছে PC1 পরিচিত PC2 যেমন192.168.0.2

PC2 এবং PC3 একটি অন্য ল্যান, যেখানে রয়েছে PC2 পরিচিত PC3 যেমন192.168.123.101

আমি কিভাবে সংযোগ করতে পারেন PC1 থেকে PC3 SSH সহযোগে।

এখানে কি কিছু আছে:

ssh user@192.168.0.2 -via user@192.168.123.101

উত্তর:


19
ssh -o 'ProxyCommand ssh -W %h:%p user@192.168.123.101'

তাহলে আপনি কেবল চালাতে পারেন ssh PC1

একটি উপনামের মাধ্যমে সর্বাধিক ব্যবহৃত ~/.ssh/config:

Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh -W %h:%p user@192.168.123.101

যে হবে না OpenSSH- র পুরোনো সংস্করণগুলি জন্য -Wবিকল্প (আমার মনে হয় মানে ≤5.4), নিশ্চিত করুন যে netcat PC2 এবং ব্যবহার পাওয়া যায়

Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh user@192.168.123.101 nc %h %p

1
+1 হ্যাঁ, এবং আমার আরও কিছু বিশদ সহ স্ট্যাকওভারফ্লো / প্রশ্নগুলি 1010808/1122282#1122282 রয়েছে।
মুহূর্ত

নেটক্যাট ইনস্টল করতে প্রয়োজন
স্টিফান

4

এসএসএইচ ব্যবহারের একটি সুস্পষ্ট সমাধান রয়েছে:

  1. আপনার স্থানীয় মেশিনে ~/.ssh/configএটির মতো এমন একটি সেট আপ করুন :

    host WhatYouWillCallTheConnection
        hostname the.gateway.server.address.com
        user YourUsernameOnTheGateway
    
  2. গেটওয়ে এবং শেষ সার্ভার উভয়টিতে আপনি সংযোগ করতে চান তা নিশ্চিত করে নিন যে আপনার স্থানীয় ক্লায়েন্টের পাবলিক কীগুলি আপনার কাছে অবস্থিত ~/.ssh/authorized_keys

  3. গেটওয়ে মেশিনে আপনাকে এমন পরিবর্তন করতে হবে ~/.ssh/authorized_keysযে লাইনের শুরুতে আপনার ক্লায়েন্টের পাবলিক কী নির্দিষ্ট করে, জোর করে কমান্ডটি নিম্নরূপে যুক্ত করুন:

    command="ssh -A user_name@ServerTheGatewaySees.ButTheClientCant.net" ...yourPublicKey....
    

-Aএজেন্ট ফরোয়ার্ড করতে যদি আপনি পছন্দ করেন না পাসওয়ার্ডগুলি সব সময় পাঠাতে হচ্ছে ...

এই উপায়ে, যে কোনও সময় আপনি যেমন কিছু করেন ssh WhatYouWillCallTheConnectionএটি সরাসরি গেটওয়ে দিয়ে চলবে এবং আপনাকে অন্যদিকে স্বচ্ছভাবে সার্ভারের সাথে সংযুক্ত করবে।


2
ssh -Aগেটওয়ে মেশিনের প্রশাসকের উপর বিশ্বাস না রাখলে ব্যবহার করবেন না । তিনি আপনার প্রাইভেট কীটি পেতে পারেন না, তবে যতক্ষণ আপনি গেটওয়ের সাথে সংযুক্ত রয়েছেন ssh -A, ততক্ষণ আপনি অন্য মেশিনের সাথে সংযোগ রাখতে ফরোয়ার্ড এজেন্টটি ব্যবহার করতে পারেন।
জান্ডার

2

পোর্ট ফরওয়ার্ডিং কার্যকর হতে পারে।
পিসি 1 থেকে:

~# ssh -fN -L 22:PC3:7777 -l <user> PC2  

7777 কেবল যে কোনও বন্দর হতে পারে (তবে এটি ইতিমধ্যে ব্যবহৃত হচ্ছে না) আমি ঠিক এই নম্বরটি পছন্দ করি, সাথে সাথে যে কোনও "অর্ডার আপ" আমি +1 এর মাধ্যমে (7778, 7779, ইত্যাদি) পরিচালনা করতে পারি etc

এটি করা হচ্ছে, আপনার পিসি 1 এর স্থানীয় বন্দর 7777 থেকে পিসি 3 এর বন্দর 22 পর্যন্ত একটি 'স্বচ্ছ' টানেল থাকবে Just কেবল ইস্যু করুন:

~# ssh -l <user> -p 7777 localhost  

এবং আপনার পিসি 3 এ থাকা উচিত।
আপনি যদি কোনও SOCKS প্রক্সি প্রতিষ্ঠিত করতে চান তবে আপনি কোনও পোর্টকে গতিশীলভাবে ফরোয়ার্ড করতে -D ব্যবহার করতে পারেন।

~# ssh -D <someport> -fN -L 22:PC3:7777 -l <user> PC2  

চিয়ার্স!


1

2017+ ( v7.3 সাল থেকে ) এর উত্তরটি প্রক্সি জম্প :

ssh -J user@jumphost user@destination

, যা সংক্ষিপ্ত:

ssh -o "ProxyJump user@jumphost" user@destination

এটি যেমন ssh destএকটি ~/.ssh/configস্নিপেট দিয়ে ছোট করা যেতে পারে :

Host jump
    User MyJumpHostUser
    Hostname Jump.host.tld

Host dest
    ProxyJump jump
    User MyDestUser
    Hostname des.tin.ati.on

0

এর জন্য আমি কেবলমাত্র সমাধানটি জানি বেলিয়ারের সাথে এসএসএস স্ক্রিপ্টিং :

বেলিয়ার এসএসএইচ সংযোগের মাধ্যমে শেলটি খুলতে বা রিমোট কম্পিউটারে একটি কমান্ড চালানোর অনুমতি দেয়। বেলিয়ারের প্রধান বৈশিষ্ট্যটি কাজটি উপলব্ধি করার আগে বেশ কয়েকটি মধ্যবর্তী কম্পিউটার অতিক্রম করার ক্ষমতা।

কিছুক্ষণ আগে আমি এমআইটি লিংকন ল্যাবরেটরির হোমপৃষ্ঠাতে এই README.sshhopটি পেয়েছি তবে আমি সে সম্পর্কে আরও কোনও তথ্য খুঁজে পাইনি। কেউ কি আরও জানেন?

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