স্নোবলের উত্তরটি অনেক সাহায্য করেছিল। তবে, আমি কমান্ডটিতে কিছু পরিবর্তন করেছি এবং এটি কীভাবে কাজ করে তা ব্যাখ্যা করতে চাই 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'