স্নোবলের উত্তরটি অনেক সাহায্য করেছিল। তবে, আমি কমান্ডটিতে কিছু পরিবর্তন করেছি এবং এটি কীভাবে কাজ করে তা ব্যাখ্যা করতে চাই wanted এই পরিস্থিতি দেওয়া:
ssh ssh
A -------> B -------> C
^ ^
using A's using B's
ssh key ssh key
আপনার ~/.ssh/config
ফাইলটি সংশোধন করুন এবং যে হোস্টটি B
দিয়ে আপনি ঝাঁপিয়ে পড়তে চান সেটি জুড়ুন , ঠিক কীভাবে আপনি কোনও হোস্টকে সাধারণভাবে কনফিগার করবেন:
Host B
User myusername
HostName b.mycompany.com
তারপরে আপনি C
যে হোস্টটি শেষ করতে চান তা যুক্ত করুন:
Host C
User myusername
HostName c.intranet.mycompany.com
ProxyCommand ssh -T -q -o 'ForwardAgent yes' B 'ssh-add -t 1 && nc %h %p'
নোট করুন ProxyCommand
, যেখানে:
ssh -T -q
ইঙ্গিত দেয় যে এটি একটি সিডো-টিটিওয়াই ( -T
) বরাদ্দ করা উচিত নয় এবং শান্ত হওয়া উচিত ( -q
);
- একবার জাম্প হোস্টে
B
, আমরা এসএসএইচ কীগুলির A
মাধ্যমে কীটি যুক্ত করব ssh-add
;
- যা কেবলমাত্র কাজ করে কারণ আমরা ব্যবহার করে এসএসএইচ এজেন্ট ফরওয়ার্ড করেছি
-o 'ForwardAgent yes'
।
ssh-add -t 1
ইঙ্গিত দেয় যে আমি চূড়ান্ত হোস্ট সিতে অনুমোদনের জন্য প্রয়োজনীয় 1 সেকেন্ডের জন্য কীটি যুক্ত করা চাই;
- এবং পরিশেষে, বন্দরে চূড়ান্ত হোস্টের সাথে
nc %h %p
একটি netcat
সংযোগ শুরু করে (উভয়ই এসএসএইচ ফাইলের তথ্যের ভিত্তিতে পূরণ করবে )।%h
%p
~/.ssh/config
যদি আপনার B
ব্যবহারের জন্য একটি কাস্টম কী নির্দিষ্ট করতে হয় তবে আপনি ssh-add
অংশটি পরিবর্তন করে এটি করতে পারেন :
Host C
User myusername
HostName c.intranet.mycompany.com
ProxyCommand ssh -T -q -o 'ForwardAgent yes' B 'ssh-add -t 1 ~/.ssh/mykey && nc %h %p'