যখন প্রয়োজন হয় তখন কীভাবে এসএসএইচ কী পাসফ্রেজের জন্য জিজ্ঞাসা করা যায়?


15

(আমি এই সাইটে সম্পর্কিত অনেকগুলি প্রশ্ন পড়েছি যা সম্পর্কিত দেখায় এবং আমি বিশ্বাস করি এটি সত্যই নতুন প্রশ্ন))

প্রচুর সার্ভারে আমার কাছে প্রচুর কী রয়েছে এবং সেগুলি পাসফ্রেসের সাহায্যে সুরক্ষিত।

আমি পাসওয়ার্ড লিখতে চাই যতটা পাসওয়ার্ড লিখতে চাই - এটি একটি আসল উত্পাদনশীলতা ড্রেন।

  • ssh-এজেন্ট + ssh-add কমান্ডগুলি লগইন শেলটিতে ব্যবহার করা যেতে পারে যার অর্থ আপনাকে লগইন করার সময় কেবলমাত্র আপনার পাসফ্রেজ প্রবেশ করতে হবে

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

আমার সমস্যাটি হ'ল এই দুটি সমাধানই সাধারণত শেল লগইনে শুরু করা হয় (যেমন .zshrc) আমি লগ ইন করার সময় আমার পাসফ্রেজে প্রবেশ করার উপর নির্ভর করি, এমনকি যদি আমার এটি আনলক করার প্রয়োজন হয় না। (আমি কোনও এজেন্টকে অনির্দিষ্টকালের জন্য বাঁচিয়ে রাখতে কীচেনে সন্তুষ্ট নই।)

আমি যা চাই তা কেবল প্রয়োজনের সময় পাসফ্রেজের জন্য (কোনও এজেন্টের জন্য) অনুরোধ করা ।

সুতরাং আমি সার্ভার এ লগ ইন করতে পারি, কিছু স্টাফ করতে পারি, তারপরে সার্ভার বিতে এসএসএস করতে পারি এবং সেই সময়ে পাসফ্রেজের জন্য জিজ্ঞাসা করা যেতে পারে। সার্ভার বি তে কিছু স্টাফ করুন, লগ আউট করুন। এ এ ফিরে, আরও কিছু স্টাফ করুন, আবার বিতে এসএসএস করুন এবং আমার পাসফ্রেজের প্রয়োজন হবে না (এটি কোনও এজেন্টের হাতে রয়েছে)।

আমি নোট করেছি যে জিনোমের মতো গ্রাফিকাল ডেস্কটপগুলিতে এটি সম্ভব - আপনি এসএমএস করার চেষ্টা করার সাথে সাথে আপনার ব্যক্তিগত কীটি আনলক করতে পাসফ্রেজের জন্য একটি পপ-আপ পাবেন। সুতরাং এই আমি পরে কিন্তু একটি কনসোল থেকে করছি।


কেন কেবল পাসফ্রেজগুলি ছাড়া এসএস-কী তৈরি করা যায় না? আপনি যদি যাইহোক এই সমস্ত সমস্যার মধ্য দিয়ে যেতে যাচ্ছেন?
ডেভনুল

1
যদি কারও মধ্যে ব্রেকআপ হয় এবং পাসওয়ার্ড-কম কী (বা একটি সক্রিয় ssh এজেন্ট) থাকে তবে তাদের অন্যান্য অনেক সার্ভারেও অ্যাক্সেস থাকতে পারে। এছাড়াও পাসফ্রেজ-কম কীগুলি চুরি করে অন্য কোথাও ব্যবহার করা যেতে পারে।
আর্টফুল্রবট

আমি যতদূর জানি, কিছু স্তরের সুরক্ষা ত্যাগ না করে আপনি যা চান তা করার কোনও উপায় নেই, যা মনে হচ্ছে আপনি করতে চান না। এখানে থমাস নেইম্যানের গভীরতার উত্তর ছিল যা আপনি ইতিমধ্যে এটি না পড়লে অনেক সম্ভাবনার মধ্যে চলে যায়: unix.stackexchange.com/a/90869/82289 । আমি আমার সংস্থার মধ্যবর্তী সার্ভারের মাধ্যমে এটি পেতে পারি যা টিএমাক্সের সাথে এসএসএস সেশন পরিচালনা করে।
ডিভনুল

@ দেভনুলকে অদ্ভুত বলে মনে হচ্ছে আপনি এটি ডেস্কটপ দিয়ে করতে পারবেন তবে টার্মিনালের সাথে নয়, না? নিশ্চয় কোনও টি কী যুক্ত না করা থাকলে এজন্য কেবল টিটিটিতে ঝাঁপিয়ে পড়া দরকার? এইভাবেই কি গুইরা কাজ করবে?
আর্টফুল্রবট

আপনি আমার উত্তরটি এখানে দেখতে পারেন: unix.stackexchange.com/a/184160/89706 (প্রশ্নের লিংক: unix.stackexchange.com/questions/90853/… )
জনি ওয়াং

উত্তর:


16

আপনার কোনও শেল প্রারম্ভিক স্ক্রিপ্টগুলিতে কোনও কিছু যুক্ত করবেন না, এটি অপ্রয়োজনীয় হ্যাকারি।

পরিবর্তে, যোগ করুন

AddKeysToAgent yes

আপনার .ssh / কনফিগারেশনে

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


আমি আশা করি ভোট দেওয়ার সময় লোকেরা মন্তব্য করবে। এটি সঠিক না হলে আমরা জানি কেন এটি সঠিক নয়। পোস্ট করার জন্য ধন্যবাদ, আমার নিজের পরামর্শ দেওয়ার চেষ্টা করার মতো সময় আমার হাতে নেই।
আর্টফুল্রবট

আমিও ভাবলাম, আমার ক্রস পোস্টের কারণে হয়তো?
টবি

এটি আমার পক্ষে কাজ করে। তবে এটি ওপেনশে খুব সাম্প্রতিক সংযোজন (.2.২)। এটি যদি কাউকে সহায়তা করে তবে ওপেনশাস 7.3 ডেবিয়ান সিডে উপলব্ধ।
আর্টফুলবোট

@artfulrobot: আশ্চর্যের বিষয়, যেহেতু আমার এই একই আচরণ ছিল (এসএসএসের প্রথম কলটিতে অটো-এসএসএস-অ্যাড) বেশ কয়েক বছর ধরে কাজ করে, অবশেষে কিছুক্ষণ আগে এটি বন্ধ হয়ে যায়। কারণটির সন্ধান করতে গিয়ে আমি অ্যাডকিসটওএজেন্টকে পেয়েছি এবং ধরে নিয়েছি যে এটি বন্ধ হওয়ার কারণটি ছিল দুর্ঘটনাক্রমে আমি অবশ্যই এটির সাথে আমার .ssh / কনফিগারেশন এবং অ্যাডকিজটো এজেন্ট পরিষ্কার করে ফেললাম। এখন আমি ভাবছি ওপেনএসএসএইচ 7.2 প্রকাশের আগে এটি কেন দীর্ঘ কাজ করছে? আমি এটি কল্পনা করছি না :-)
টবি

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

7

জেডএসের একটি preexecহুক রয়েছে যা কমান্ডলাইনে প্রবেশ করা একটি কমান্ড কার্যকর করার আগে একটি ফাংশন সম্পাদন করে। sshআপনার কমান্ড লাইনে সন্ধানকারী এমন একটি হুক এখানে রয়েছে এবং যদি খুঁজে পাওয়া যায় তবে কোনও এসএসএল এজেন্টের অস্তিত্বের জন্য এটি পরীক্ষা করে। যদি এটি না পাওয়া যায় তবে এটি কীচেন চালায়।

সুতরাং এইভাবে, কীচেইন কেবল ssh কমান্ডগুলির আগে চালানো হয়, এবং তারপরে কেবল প্রয়োজনে।

এটি আপনার মধ্যে রাখুন ~/.zshrc:

function check_ssh {
  [[ $3 =~ '\bssh\b' ]] || return
  [[ -n "$SSH_AGENT_PID" && -e "/proc/$SSH_AGENT_PID" ]] \
    && ssh-add -l >/dev/null && return
  eval `keychain --eval id_dsa --timeout 60`
}    
autoload -U add-zsh-hook
add-zsh-hook preexec check_ssh

এখানে কি ঘটে যখনই কোনও কমান্ড টাইপ করা হয়, check_sshকমান্ডটি কার্যকর করার আগে তাকে ডাকা হয়।

ফাংশনটির প্রথম লাইনটি sshZsh regex ব্যবহারের জন্য বর্ধিত কমান্ডটি পরীক্ষা করে । উভয় পাশেই sshশব্দের সীমানা থাকতে হবে \b। যদি এটি না পাওয়া যায় তবে ফাংশনটি ফিরে আসে।

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

অবশেষে আমরা কীচেইন শুরু করি, এজেন্টকে এক ঘন্টা বেঁচে রাখার জন্য।

এটা এখনও মত এমবেড SSH কাপড় সম্পর্কে সমস্যা ছেড়ে gitবা rsyncবা scpযেমন যে ফাংশন আরম্ভ করি না (আপনি Regex এইসব যোগ করতে পারিনি)।


এমনকি ছাড়াও zsh, কেউ একই প্রভাবের সাথে একটি শর্ট স্ক্রিপ্ট তৈরি করতে পারে এবং এটি PATHপ্রকৃত sshক্লায়েন্টের সামনে রাখতে পারে । এমনকি সরাসরি চালানোর পরিবর্তে তারা যদি পড়েন তবেrsync এট আল-এর সাথেও কাজ করতে পারে । PATH/usr/bin/ssh
ilkkachu

2

জেডএসের জন্য, আপনি যা চান তার কম বা বেশি করার জন্য আমি ইউটিলিটি এবং মোড়কের একটি সেট লিখেছি: https://www.vinc17.net/unix/index.en.html#zsh-ssh-utils

আসলে এই এমনকি আরো কারণ না, ssh-agentসব লগইন সেশন দ্বারা ভাগ করা হবে (ডেস্কটপ বা SSH- র মাধ্যমে, এবং গনুহ স্ক্রিন খুব সমর্থিত যদি এটা যেমন থেকে লগইন শাঁস শুরু shell -zshমধ্যে ~/.screenrcফাইল), এবং এটি পরই প্রস্থান করা হবে শেষ অধিবেশন সমাপ্ত।

দ্রষ্টব্য: আমি আমার সমস্ত কীগুলির জন্য কেবল একটি পাসফ্রেজ ব্যবহার করি। আমি বিভিন্ন পাসফ্রেজের জন্য আচরণ সম্পর্কে নিশ্চিত নই; কিছু পরিবর্তন প্রয়োজন হতে পারে।


বাহ যে বেশ কোড অনেক। সুন্দর কাজ এবং ভাগ করে নেওয়ার জন্য ধন্যবাদ। আমি মনে করি আমার আরও সহজ কিছু দরকার - এসএসএইচ আমার পক্ষে একটি দুর্দান্ত মূল সরঞ্জাম।
আর্টফুলরোবট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.