একাধিক হোস্টের মাধ্যমে ssh


37

আমার অফিসে আমার মেশিনে উঠতে, এই মুহুর্তে আমি এটি করছি:

me@home:~$ ssh unix.university.com
me@unix:~$ ssh unix.department.univeristy.com
me@unix.department:~$ ssh office-machine.department.university.com
me@office-machine:~$ echo "This is very annoying"

এই প্রক্রিয়াটি স্বয়ংক্রিয় করার কি কোনও সহজ উপায় আছে, সম্ভবত আমার একক কমান্ড যা আমি আমার শেষে ব্যবহার করতে পারি?


উত্তর:


31

লগ-ইন করার পরে আপনি রিমোট মেশিনে ssh চালানোর জন্য ssh ক্লায়েন্ট ব্যবহার করতে পারেন।

ssh -t unix.university.com \
    ssh -t unix.department.univeristy.com \
    ssh -t office-machine.department.university.com

(আমি -tআমন্ত্রণগুলিতে অন্তর্ভুক্ত করার কারণটি হ'ল কারণ ssh আমাকে ত্রুটিগুলি প্রদান করছিল: আমি নিজের মেশিনে চেষ্টা করার পরে স্টিডিন টার্মিনাল নয়; আপনার মেশিনটি আলাদা হতে পারে be)

আপনি যখন শেষ শেল থেকে প্রস্থান করবেন, প্রক্রিয়াটি চেইন-প্রস্থান করবে, আপনাকে Ctrl-Dবারবার টাইপ করে সংরক্ষণ করবে ।


দয়া করে নোট করুন: কেবলমাত্র "-t" যুক্ত করুন যদি আপনি কেবল দূরবর্তী মেশিনে লগইন করেন। রিমোট মেশিনে একটি কমান্ড শুরু করতে, এগুলি এগুলি রাখবেন না / যেমন তারা কিছু জিনিসকে দূষিত করতে পারে (উদাহরণস্বরূপ: tar cf - something | ssh somewhere "cd /path/remote ; tar xf - " আপনি যুক্ত করলে দুর্নীতিগ্রস্থ হতে পারে -t! উদাহরণস্বরূপ দেখুন স্টিফেনচাজলাসের উত্তর unix.stackexchange.com/questions/151916/ … )
অলিভিয়ার ডুলাক

3
এই জবাবটির চেয়ে -J ব্যবহার করা আরও সুরক্ষিত, কারণ আপনার নিজের কম্পিউটারে সমস্ত ssh কী সংরক্ষণ করার সম্ভাবনা রয়েছে। @ মিক্কার উত্তর থেকে উল্লিখিত হিসাবে-জে বিকল্পটি ওপেনশ সংস্করণ 7.৩ এ প্রবর্তিত হয়েছিল
এরিক সিজলুন্ড

1
@ এরিকজেলুন্ড ওপেনশ একাধিক -Jবিকল্পের অনুমতি দেয় না । আমি মনে করি আপনি এটি ProxyCommandআপনার কনফিগারেশনের একাধিক বিকল্পের সাহায্যে করতে পারেন ।
এম্পেটাম্যাচাইন

1
@ এমফেটাম্যাচিনের সাহায্যে -Jআপনি কলের সাথে কমা দ্বারা বিচ্ছিন্ন তালিকাটি নির্দিষ্ট করতে পারেন to আপনি যদি সমর্থন করার জন্য খুব পুরানো কোনও সংস্করণ ব্যবহার করছেন বলে মনে হয় তবে এই উত্তরটির ProxyCommandসাথে -Wএখনও ব্যবহার করা আরও উত্তম পদ্ধতির -J
কাস্পার্ড

35

হ্যাঁ, এসএসএস প্রক্সিকম্যান্ড এবং নেটক্যাট ব্যবহার করে এটি করার একটি দুর্দান্ত উপায় রয়েছে

আপনার .ssh / কনফিগারেশনে এর মতো কিছু রাখুন

Host *.department.university.com
User me
ForwardAgent yes
ProxyCommand ssh unix.university.com nc %h %p

এটি সরাসরি জাম্প / বাশান হোস্ট unix.university.com ব্যবহার করে কোনও .department.university.com সার্ভারে লগ ইন করবে। সরাসরি unix.university.com এর জন্য আপনার একটি স্তবকের প্রয়োজনও হতে পারে।

এটি কীভাবে কাজ করে তা বোঝাতে এখানে একটি লিঙ্ক রয়েছে: http://backdrift.org/transparent-proxy-with-ssh

এই কৌশলটি দিয়ে আপনি এখন কেবল লিখতে পারেন

ssh unix.department.university.com

এবং এটি সব সরাসরি প্রদর্শিত হবে। Rsync, scp, ইত্যাদি সরঞ্জাম (এসএসএস স্ট্যাকের যে কোনও কিছু) পাশাপাশি স্বচ্ছভাবে কাজ করবে।


2
+1 আমি একটি স্টেজিং সার্ভারের মাধ্যমে একটি পরীক্ষার নেটওয়ার্ক থেকে প্রোড নেটওয়ার্কে ডেটা ঠেকাতে এর অনুরূপ কিছু ব্যবহার করি।
আর্জেজ

2
হ্যাঁ, এটি দুর্দান্ত কাজ করে!
গ্যাবে

15
-Wঅপশনটি সমর্থন করে রেকর্ড করা নতুন সংস্করণগুলির জন্য , আপনি ProxyCommand ssh -W %h:%p gatewayএনসি উপর নির্ভর করে কিছু করার মতো করতে পারেন
উলরিচ ড্যানজেল

জানা ভাল! থেক্স
অ্যারন ব্রাউন

2
ব্যবহারকারীর নাম যদি মেশিনগুলির জুড়ে একই হয় তবে দুর্দান্ত কাজ করে; যদি এটি আলাদা হয় তবে আপনাকে এর মতো কিছু করতে হবেProxyCommand ssh -W %h:%p user@gateway
রিকার্ডো কোসু

9

ওপেনএসএসএইচ 7.3 এ, ssh -Jকমান্ড লাইন পতাকা এবং সম্পর্কিত ProxyJumpকনফিগারেশন বিকল্পটি যুক্ত করেছে ঠিক এই সমস্যাটি সমাধান করার জন্য।

কমা-বিচ্ছিন্ন তালিকা হিসাবে আপনি যে হোস্টগুলি প্রেরণ করতে চান তা দিন -J। উদাহরণ স্বরূপ:

ssh -J unix.university.com,unix.department.university.com  \
  office-machine.department.university.com

-5

এসএসএইচ টানেলিং। আমি ঠিক কীভাবে এটি করব তা মনে করতে পারছি না তবে আমি জানি যে মূলত কোনও মেশিনের আলাদা আলাদা বন্দরের সাথে সংযোগ স্থাপনের মাধ্যমে কোনও টানেলের অনুমতি দেওয়া যেতে পারে। এইভাবে আপনি কেবল একই প্রাথমিক মেশিনে শেল করুন (উদাহরণস্বরূপ ভিন্ন পোর্ট সহ) এবং এটি আপনাকে আপনার চূড়ান্ত অবস্থানের দিকে নিয়ে যাবে।

এটি কীভাবে কনফিগার করতে হয় তা সন্ধান করতে হবে।

:)


আপনি চান না (এবং সম্ভবত আপনি পারবেন না) একটি বন্দর বা আপনার বিশ্ববিদ্যালয়ের এসএস গেটওয়ে খুলতে পারেন…
স্টাফেন গিমেনেজ

9
আপনি কীভাবে এটি করতে জানেন না, এবং এটি সন্ধান করার জন্য বিরক্ত করা যায় না, আপনি কেন এই উত্তর পোস্ট করলেন?
এম্পেটাম্যাচাইন

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