এসএসএইচ-এর মাধ্যমে লগইন-এ এসএস-এজেন্ট চালানোর জন্য সোজা ফরোয়ার্ড উপায়?


38

আমি ssh- এর মাধ্যমে আমার সার্ভারে লগইন করার সময় নিম্নলিখিত কমান্ডগুলি স্বয়ংক্রিয়ভাবে কার্যকর করার চেষ্টা করছি:

ssh-agent /bin/bash
ssh-add ~/.ssh/id_rsa

আমার ssh কী একটি পাসফ্রেজ আছে এবং আমি প্রতি লগইন একবার এটি প্রবেশ করে ভাল।

আমি এটি আমার .bashrc ফাইলে রাখার চেষ্টা করেছি, তবে আমি বিশ্বাস করি যে ssh- এজেন্ট একটি নতুন বাশ সেশন শুরু করে। আমার .bashrc এ থাকার পরে আমি যখন লগইন করার চেষ্টা করি তখন এটি আটকে যায় এবং 'কী পাস আনলক করতে পাসফ্রেস প্রবেশ করান' প্রম্পটটি দেখতে আমাকে 'প্রস্থান' টাইপ করতে হয়

অন্য কোন পরামর্শ?

সার্ভার উবুন্টু এলটিএস চালাচ্ছে


সার্ভারে কী এজেন্ট? এটি আপনার স্থানীয় ক্লায়েন্টের উপর থাকা উচিত যা থেকে আপনি সংযোগ করছেন।
জোড়াদেচি

@ জোরেডাচি আমি git pullরিমোট সার্ভারে
এগুলি

তারপরে আপনার স্থানীয় মেশিনে একটি এসএসএইচ এজেন্ট চালান, এবং এজেন্টটি ফরোয়ার্ড করুন।
জোরেডেচ

@ জোরেদাছে ধন্যবাদ, জানতেন না যে এটি সম্ভব ছিল। তবে আমি এখনও আমার স্থানীয় মেশিন থেকে বাশ স্ক্রিপ্টের মধ্যে থেকে এসএসএড-অ্যাড / এসএসএল-এজেন্ট করতে সক্ষম হতে চাই। এই কমান্ডগুলি ম্যানুয়ালি চালাতে হবে এটি একটি বেদনা।
আপোভোট ক্লিক করুন

উত্তর:


52

আপনি এটি যোগ করার চেষ্টা করতে পারেন:

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

এইভাবে ssh-agentকোনও নতুন শেল শুরু হয় না, এটি কেবল পটভূমিতে নিজেকে প্রবর্তন করে এবং উপযুক্ত পরিবেশের ভেরিয়েবলগুলি সেট করতে শেল কমান্ড আউট করে।

মন্তব্যে যেমন বলা হয়েছে, আপনি সম্ভবত রিমোট হোস্টে এজেন্টটি চালাতে চান না , বরং আপনি যে বাক্স থেকে কাজ করছেন তার উপর এবং ব্যবহার করুন

ssh -A remote-host

আপনার স্থানীয় ssh এজেন্টের পরিষেবাগুলি দূরবর্তী-হোস্টে ফরোয়ার্ড করতে।

সুরক্ষার কারণে আপনার কেবলমাত্র বিশ্বস্ত ব্যক্তিদের দ্বারা পরিচালিত হোস্টগুলির সাথে এজেন্ট ফরওয়ার্ডিং ব্যবহার করা উচিত তবে যেকোন সময় রিমোট থেকে সম্পূর্ণ এজেন্ট চালানোর চেয়ে এটি ভাল।


আমি যখন এটির ssh-agent /bin/bashসাথে প্রতিস্থাপন করি ssh-agent -sএবং তারপরে আমি চেষ্টা করি git pull, তখনও আমি এটিকে আনলক করার জন্য ব্যক্তিগত কীটির পাসফ্রেজ চেয়েছি for এটি আসলে যা আমি চাই তা নয়, আমি কেবল এসএসএড-অ্যাড করার জন্য পাসফ্রেজটি প্রবেশ করতে চাই এবং প্রতিবার আমি কোনও গিট কমান্ড চালানোর সময় এটি পুনরাবৃত্তি করতে হবে না। কোন ধারনা?
আপোভোট ক্লিক করুন

এবং স্থানীয়ভাবে এজেন্ট চালানো এবং ssh -A ব্যবহার করা আপনার পক্ষে কোন বিকল্প নয়? সমস্যাটি হ'ল, আপনি প্রতিটি সংযোগে ssh-এজেন্টকে 'পুনরায় চালু করতে পারবেন না'। যতবার আপনি এটি শুরু করবেন, এটি 'কিছুই' জানে না এবং যখন আপনি কীটি শ্যাশ-যুক্ত করবেন তখন আপনাকে এটি ডিক্রিপ্ট করতে হবে ...
টোবি ওটিকার

আপনার .ssh / কনফিগার ফাইলের জন্য: হোস্ট রিমোট-হোস্ট কন্ট্রোলমাস্টার অটো কন্ট্রোলপথ ~/.ssh/master-%l-%r@%h:% p কন্ট্রোলপ্রেস্ট 2 ঘন্টা
টোবি

1
উফ কেবল ব্যাশে বুঝতে পেরেছিল যে এসএস-এজেন্ট কলের সামনে আপনার অতিরিক্ত alওল প্রয়োজন .. উপরে আমার উত্তরটি আপডেট করেছেন
টোবি ওটিকার

1
আপনি একটি উপনাম তৈরি করতে পারেন
টোবি ওটিকার 12

2

এক বিকল্প Funtoo এর ব্যবহার করা কীচেইনে । তারপরে আপনি আপনার ব্যাশ শেলের মধ্যে এই ওয়ান-লাইনারটি আটকে রাখতে পারেন:

eval $(keychain --eval id_rsa)

এটি একই কাজ করে (ssh এজেন্ট ইত্যাদি প্রবর্তন করে), পাশাপাশি প্রতিটি সাব-শেলের জন্য ssh-এজেন্ট প্রক্রিয়া চালায় না। পরিবর্তে এটি আপনার নিজের মধ্যে "ইতিমধ্যে চলমান" দৃষ্টান্তগুলির সন্ধান করে এবং সেগুলিতে আপনাকে সংযুক্ত করে।

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