বুশ হোস্টে স্ক্রিন বা টিএমউক্স সহ এসএসএইচ-এজেন্ট কী টাইমআউট


8

সাধারণত আমার এসএসএল-এজেন্ট চলমান থাকে, আমি আমার ঘাঁটি হোস্টের কাছে এসএসএস করি তারপরে একটি টিএমউक्स সেশনটি খুলি এবং এর মাধ্যমে অন্যান্য বাক্সগুলিতে সংযুক্ত করি। কী ফরোয়ার্ডিং আমি যে বিন্দু থেকে সামনে যে কোনও সেশনের জন্য কাজ করি।

যদি আমি টার্মিনালটি বন্ধ করে, আমার ল্যাপটপটি ঘুমিয়ে রাখি, আমার বামন সেশনগুলিতে আমার কী ফরোয়ার্ডিং এখনও কাজ করে যা কোনও নতুন সেশনে ফরোয়ার্ড করার মতো, যদি আমি আমার টিএমএক্স সেশনটি পুনরায় শুরু করি । যদিও বিদ্যমান তারা কাজ করে না।

আমার বাশ্রিআরসি-তে আমার একটি ছোট জিনিস রয়েছে যা আমি টিএমউক্স পুনরায় শুরু করার সময় কী ফরোয়ার্ডিংয়ের কাজ চালিয়ে যায়, তবে এটি কীভাবে tmux এর মধ্যে খোলা সেশনের জন্য কাজ চালিয়ে যেতে হয় তা নির্ধারণ করতে আমার সমস্যা হচ্ছে।

উদাহরণস্বরূপ, আমার কাছে বেসেশন 01, dbhost01, dbhost02, webhost01 এবং ওয়েবহোস্ট02 রয়েছে।

যদি আমি বেসেশন0১ এ কোনও সংযোগটি খুলি, তবে সেখানে টিএমউক্স শুরু করুন এবং তারপরে dbhost01 এবং ওয়েবহোস্ট01 ফরোয়ার্ডিংয়ের কাজগুলিতে সংযুক্ত করুন। যদি আমি সেই সংযোগটি বন্ধ করে দিই, আমার বিদ্যমান টিএমক্স সেশনটি পুনরায় সংযুক্ত করুন এবং সংযুক্ত করি, তবে dbhost02 এবং webhost02 এর সাথে সংযোগগুলি যুক্ত করুন, কী ফরোয়ার্ডিং 02 বাক্সে কাজ করে, তবে 01 তে নয়।

সাহায্য করুন!

উত্তর:


11

প্রতিবার আপনি যখন প্রবেশ করবেন bastion01, কী ফরোয়ার্ডিং পরিচালনা করার জন্য একটি আলাদা সকেট খোলা হবে। আপনি পরিবেশের ভেরিয়েবলের ফাইলের নাম দেখতে পাবেন SSH_AUTH_SOCK। আপনি যখন শুরু করেন tmux, সেই পরিবেশের পরিবর্তনশীলটির মান tmuxবিশ্বব্যাপী পরিবেশে অন্তর্ভুক্ত থাকে , যা অধিবেশনটিতে শুরু হওয়া কোনও শেল দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়।

এখন, যখন আপনি bastion01পরে পুনরায় সংযোগ করছেন , আপনার কী ফরোয়ার্ডিং হ্যান্ডেল করার জন্য একটি আলাদা সকেট বরাদ্দ করা হয়েছে (যেহেতু এটি একটি নতুন ssh অধিবেশন)। আপনি SSH_AUTH_SOCKআপনার tmuxসেশনে পুনরায় সংযুক্ত করার আগে এবং এর পরে এর মান পরীক্ষা করে এটি দেখতে পারেন । কী ফরোয়ার্ডটি ভিতরে কাজ করার জন্য tmux, আপনাকে বর্তমান এসএস সেশন দ্বারা ব্যবহৃত সকেটের নামের সাথে SSH_AUTH_SOCKঅভ্যন্তরের মানটি আপডেট করতে tmuxহবে।

এটি করার একটি দ্রুত এবং নোংরা উপায় হ'ল একটি শর্ট স্ক্রিপ্ট লিখুন যা এই ফাইলটির নতুন মানটি সংরক্ষণ করবে এবং যে tmuxউইন্ডোর যেখান থেকে আপনি sshচলেছেন তার মধ্যে সেই কার্যকর করুন ।

#!/bin/bash

echo "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK" > ~/.auth_ssh

আপনি স্ক্যাশ করার সাথে সাথে সেই স্ক্রিপ্টটি কার্যকর করুন bastion01, তবে আপনি নিজের টিএমউक्स সেশনে পুনরায় সংযুক্ত করার আগে। তারপরে, ভিতরে থেকে যে কোনও জায়গা থেকে tmuxচালানোর চেষ্টা করার আগে , নিম্নলিখিতটি চালান:

source ~/.auth_ssh

প্রতিটি tmuxউইন্ডোর নিজস্ব পরিবেশ রয়েছে, সুতরাং আপনার ssh চালানোর চেষ্টা করার প্রতিটি উইন্ডোতে আপনাকে এটি চালানো দরকার। সরলতার জন্য, আপনি নিজের জন্য এটি করার জন্য আপনি ওরফে ssh করতে পারেন:

alias ssh="source ~/.auth_ssh; ssh"

দ্রষ্টব্য: এটি এসএসএইচ অনুমোদনের তথ্য আপডেট করার জন্য আমরা কর্মক্ষেত্রে ব্যবহার করি এমন স্ক্রিপ্টের সামগ্রিক ওভারসিম্প্লিফিকেশন। যদি এটি সঠিকভাবে কাজ না করে, আমি আশা করি এটি কমপক্ষে আপনাকে আরও ভাল সমাধানের গুগল করার জন্য যথেষ্ট তথ্য দেয় (বা অন্য কেউ এখানে আরও ভাল সমাধান পোস্ট করে)।

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