পদ্ধতি 1 (আন্তঃতে ssh-key ব্যবহার করুন)
আপনি যদি প্রমাণীকরণের প্রবাহ ধরে রাখতে চান want
local -- authenticate --> inter -- authenticate (ask password) --> final
এটি .ssh / কনফিগারেশন প্রক্সিহোস্ট দিয়ে করা যায় না।
আপনার যা প্রয়োজন তা হ'ল বাশ শেল ওরফে (আশা করি আপনি ব্যাশ ব্যবহার করছেন)।
ইন ~/.bashrc
, নিম্নলিখিত লাইন যুক্ত করুন
alias ssh-final='ssh -t inter ssh user2@final.com'
কমান্ড প্রম্পটে, কেবল নিম্নলিখিতটি টাইপ করুন
ssh-final
final
বিভাগ ~/.ssh/config
ব্যবহার করা হয় না।
সংযোগের বিশদ (1)
ssh -t inter ssh user2@final.com
অনুসরণ হিসাবে দেখুন হতে পারে
local# ssh inter
inter# ssh user2@final.com
local
কেবলমাত্র "কথা বলছে" তার সাথে inter
। সেখানে মধ্যে কোনো প্রত্যক্ষ বা পরোক্ষ SSH সংযোগ local
এবং final
। local
শুধু এর আউটপুট প্রদর্শন করা হয় ssh user2@final.com
।
পদ্ধতি 2 (স্থানীয়ভাবে এসএস-কী ব্যবহার করুন)
একই ssh- কী সহ প্রমাণীকরণ
Host inter
User user1
HostName inter.example.com
Host final
User user2
Hostname <final.com / final IP Address>
Port 22
ForwardAgent yes
ProxyCommand ssh inter nc %h %p
স্থানীয় কপি ~/.ssh/id_ras.pub
করুন
/home/user1/.ssh/authorized_keys in `inter`
/home/user2/.ssh/authorized_keys in `final`
সংযোগের বিশদ (2)
ssh টানেলিং
আমরা বিশদে যাওয়ার আগে ProxyCommand
, নীচের উদাহরণটি দেখি
পদক্ষেপ 1, টার্মিনাল উইন্ডো 1 এ
local# ssh inter -L 2000:final.com:22
পদক্ষেপ 2, টার্মিনাল উইন্ডো 2 এ
local# ssh localhost -p 2000
টার্মিনাল 1-এ, স্থানীয় বন্দর 2000 এবং ফাইনাল ডটকম পোর্ট 22 এর মধ্যে একটি টানেল সেটআপ করা হবে local
টার্মিনাল 2 এ, ssh স্থানীয় পোর্ট 2000 এ সংযোগ স্থাপন করুন, তবে প্রকৃতপক্ষে চূড়ান্ত ডটকম পোর্ট 22 এর সাথে যোগাযোগ করছেন, এটি এসএসডিডি।
টানেলিংয়ের সাথে, দ্বিতীয় ধাপে স্থানীয় ssh ক্লায়েন্ট সরাসরি ফাইনাল ডটকম এসএসডি এর সাথে সংযুক্ত।
স্থানীয় বন্দর 2000 এর "আউটপুট" হ'ল "কাঁচা" এসএসএস ডেমন ট্র্যাফিক।
এই জাতীয় টানেলের সাধারণ ব্যবহার হ'ল অভ্যন্তরীণ ওয়েব সার্ভার বা ইমেল সার্ভারটি অ্যাক্সেস করা। নিম্নলিখিত ওয়েব সার্ভারের জন্য উদাহরণ
local# ssh inter -L 2000:final.com:80
ব্রাউজারে নিম্নলিখিত URL টি ব্যবহার করুন
http://localhost:2000
সুড়ঙ্গটির দুটি শেষ পয়েন্ট হ'ল স্থানীয় বন্দর 2000 এবং চূড়ান্ত ডটকম পোর্ট 80।
টানেলের শেষ পয়েন্ট "এএস আইএস" এর বাইরে আসা ট্রাফিক। সেই "কাঁচা" ট্র্যাফিক কল করতে দেয়।
ProxyCommand
Host final
User user2
Hostname <final.com / final IP Address>
Port 22
ForwardAgent yes
ProxyCommand ssh inter nc %h %p
ProxyCommand
এটা আরও এক ধাপ গ্রহণ করা। এটি একটি স্থানীয় বন্দর তৈরির ধাপটি এড়িয়ে যায় এবং এটির সাথে সংযোগ স্থাপন করে।
কোনও এসএসএস ক্লায়েন্ট পিছনে প্রদত্ত কমান্ড কার্যকর করে ProxyCommand
এবং সেই আদেশের আউটপুটটিকে "কাঁচা" ট্র্যাফিক হিসাবে বিবেচনা করে। এটি স্থানীয় শেষ পয়েন্টে ধরে আছে এবং তারপরে এটির সাথে একটি এসএসএস সংযোগ শুরু করে।
এক কাজ অন্য কাজ করে না কেন?
নিম্নলিখিত আদেশ
ssh inter nc final.com 22
মূলত (1) এর সাথে সংযুক্ত হওয়া inter
, তারপরে (2) অন inter
, রান কমান্ডের অর্থ nc final.com 22
।
nc - arbitrary TCP and UDP connections and listens
সুতরাং nc final.com 22
চূড়ান্ত ডটকম পোর্ট ২২ এ সংযোগ স্থাপন করবে, সমস্ত আগত ট্র্যাফিক স্ট্যান্ডআউটে প্রিন্ট করবে এবং সমস্ত স্টিডিনকে অন্য দিকে প্রেরণ করবে। এটি এনসি স্টিডিন / আউট এবং ফাইনাল ডটকম পোর্ট 22 এর মধ্যে একটি "টানেল"।
যেহেতু nc
ssh অধিবেশনের মধ্যেই সঞ্চালিত হয়, এর সমস্ত স্টাডআউট "কাঁচা" ট্র্যাফিক হিসাবে ফিরে এসএসএস ক্লায়েন্টের কাছে চলে যায়। এবং এসএসএস ক্লায়েন্ট এনসি স্টিডিনে ট্র্যাফিক পাস করতে পারে, যা ফাইনাল ডটকম পোর্ট 22 এ শেষ হবে।
উপরের "টানেল" এর মাধ্যমে, স্থানীয় এসএসএস ক্লায়েন্ট final.com
সরাসরি সাথে একটি এসএস সেশন শুরু করবে ।
নিম্নলিখিত আদেশ
ssh -t inter ssh user2@final.com
এর সাথে কাজ করে না ProxyCommand
কারণ এটির বাইরে থাকা কোনও এসএস ডিমন থেকে "কাঁচা" ট্র্যাফিক নয়। এটি একটি ssh ক্লায়েন্টের stdout । ক্লায়েন্টের সাথে ক্লায়েন্টের কথা বলতে কোনও ব্যবসা হয় না।
বিভিন্ন এসএস-কী (ওপেন আসল কনফিগারেশন) সহ প্রমাণীকরণ
Host inter
User user1
HostName inter.com
IdentityFile ~/.ssh/id_rsa
Host final
User user2
HostName final.com
IdentityFile ~/.ssh/id_rsa_2
ProxyCommand ssh inter nc %h %p
স্থানীয় কপি ~/.ssh/id_ras.pub
করুন
/home/user1/.ssh/authorized_keys in `inter`
স্থানীয় কপি ~/.ssh/id_ras_2.pub
করুন
/home/user2/.ssh/authorized_keys in `final`
উপরের উভয়টি নিম্নলিখিত ব্যবহারকে সক্ষম করবে
local# ssh final
অতিরিক্ত চেকিং
ভার্বোস ব্যবহার করুন
local# ssh -v final
এটি ssh সমস্যা সনাক্তকরণে সহায়তা করবে।
এনসি চেক করুন
ProxcyCommand
নির্বাহ করা হয় nc
উপর inter
। কিনা পরীক্ষা করুন nc
আসলে পাওয়া যায় inter
।
local# ssh inter
inter# nc final.com 22
আরএসএ কী ঠিকভাবে সেটআপ করা আছে
বিভিন্ন কী-জন্য ব্যবহার করা হবে হয় inter
এবং final
, নিম্নলিখিত ফাইলগুলি স্থানীয় মেশিন মধ্যে উপস্থিত করা উচিত
local# ls ~/.ssh
id_rsa id_rsa_2 id_rsa.pub id_rsa_2.pub
যেহেতু আপনি inter
ইতিমধ্যে ssh করতে পারেন , কী সেটআপটি চেক করুন final
। আপনার স্থানীয় মেশিন থেকে
local# ssh -t inter ssh user2@final
final# cat .ssh/authorized_keys
আপনি id_rsa_2.pub
সেখানে বিষয়বস্তু দেখতে হবে।
ssh -t
, কিন্তু আমি যা করতে চাই তা হ'লssh -t
শুধুমাত্র কনফিগারেশন ব্যবহার করে আমার যে আচরণটি করা হয়েছে তা অনুকরণ করে.ssh/config
।