মেশিন পুনঃসূচনা করার সময় এসএসএইচ এজেন্ট পরিচয় হারায়


12

নামের সাথে কীগুলি তৈরি করার পরে id_rsaএটি ডিফল্ট অবস্থানে রয়েছে। আমি কমান্ড দিয়ে এসএসএইচ এজেন্টের সাথে পরিচয় যুক্ত করছি ssh-add ~/.ssh/id_rsa, এটি সফলভাবে যুক্ত হচ্ছে।

আমি এসএসএইচ এজেন্টের সাথে ইতিমধ্যে কী এর পাস বাক্যাংশ প্রবেশ না করে এসএসএইচ করতে পারি।

তবে , যখন আমি মেশিন বা সার্ভার পুনরায় চালু করি এবং কমান্ড সহ পরিচয় পরীক্ষা ssh-add -Lকরি তখন আমি এর মতো বার্তা পাচ্ছি The agent has no identities

এর অর্থ কি আমরা যখন মেশিনটি পুনরায় চালু করব, এজেন্ট পরিচয়টি হারিয়ে ফেলল? এই স্বাভাবিক আচরণ বা আমি এখানে কিছু মিস করছি কিছু?

দয়া করে আমাকে গাইড করুন, আমি এসএসএইচের সাথে খুব বেশি পরিচিত নই।


ইউনিক্স এবং লিনাক্স সাইটে এই থ্রেডটি দেখুন ।
janosdivenyi

উত্তর:


12

এটা স্বাভাবিক. কী এজেন্টের উদ্দেশ্য কেবল ডিক্রিপ্ট করা কীগুলি মেমরিতে রাখা , তবে এটি কখনই ডিস্কে লিখবে না। (এটি উদ্দেশ্যকে পরাভূত করবে - এর পরিবর্তে কেবল প্রধান কীটি কেন সুরক্ষিত হবে না?)

সুতরাং প্রতিটি লগইনগুলিতে কীগুলি অবশ্যই আনলক করা উচিত এবং আপনার এটি স্বয়ংক্রিয় করতে হবে - লিনাক্সে ব্যবহার pam_sshকরা একটি বিকল্প; এটি এজেন্টটিকে আনলক করতে স্বয়ংক্রিয়ভাবে আপনার ওএস পাসওয়ার্ড ব্যবহার করে। অন্য অনুরূপ মডিউলটি হ'ল pam_envoy, যা সামান্য নির্ভরযোগ্য আফাইক (তবে সিস্টেমড প্রয়োজন)।

উভয় মডিউল এজেন্ট নিজেই শুরু করবে এবং কীগুলি স্বয়ংক্রিয়ভাবে লোড করবে।


কোনও ধারণা কীভাবে ম্যাক ওএসএক্স টার্মিনালে স্বয়ংক্রিয় করবেন?
নিকস

যখন আমি কমান্ড দৌড়েছি তখন আমি $SSH_AUTH_SOCK ফলাফলটি পাচ্ছি -bash: /tmp/ssh-gT43vE99vk/agent.511:: অনুমতি অস্বীকার করলাম আমি এখানে বিভ্রান্ত হয়ে পড়েছি .. আবহাওয়া আমার এজেন্টকে ফরোয়ার্ড করে কাজ করছে বা না .. আপনি গাইড করতে পারেন?
নিকস

এটি কমান্ড হিসাবে ব্যবহার করার উদ্দেশ্যে নয় - এটি একটি পরিবর্তনশীল , এমন কিছু যা আপনি অন্য কমান্ডের অংশ হিসাবে ব্যবহার করেন। উদাহরণস্বরূপ echo $SSH_AUTH_SOCKএর মান মুদ্রণ করতে।
user1686

আরে বন্ধু .. কোন ধারণা? stackoverflow.com/questions/31916395/...
Niks

2

আপনার ~ / .Bashrc এ এটি চেষ্টা করুন :

if [ ! -S ~/.ssh/id_rsa ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/id_rsa
  ssh-add
fi
export SSH_AUTH_SOCK=~/.ssh/id_rsa

আপনি লগইন করার পরে এটি কেবল পাসওয়ার্ডের জন্য অনুরোধ করা উচিত।


উত্তরের জন্য ধন্যবাদ, এর অর্থ এসএসএইচ এজেন্ট সঠিকভাবে কাজ করছে। এবং এটি যুক্ত করার পরে মেশিন শুরু করার সাথে সাথে প্রতিটি সময় পরিচয় যুক্ত করার প্রয়োজন হবে না? দুঃখিত যদি এটি নির্বোধ প্রশ্ন তবে আমি ssh করতে খুব নতুন।
নিকস

আপনার যদি ssh কী এর পাসওয়ার্ড থাকে তবে আপনি লগইন করার সময় এটি আপনাকে জিজ্ঞাসা করবে।
শিরো

এই উত্তরটি ক্ষতিকারক । আপনি যদি এটি যা বলে তা করেন তবে এটি আপনার ব্যক্তিগত কী মুছে ফেলবে । যদি আপনার কাছে প্রমাণীকরণের কোনও উপায় না থাকে তবে আপনি এমন সিস্টেমে অ্যাক্সেস হারাবেন যেখানে আপনি পাবলিক কী প্রমাণীকরণ ব্যবহার করছেন।
ক্যাস্পারড

2

ওএস এক্স-তে, আপনি যদি নিজের ব্যক্তিগত কী সংরক্ষণের সিদ্ধান্ত নেন তবে কীচেইনে সংযোগ করার জন্য এসএসএড-এর একটি বিশেষ পতাকা রয়েছে।

শুধু চালান ssh-add -K ~/.ssh/id_rsa

আমি বিশ্বাস করি এটি আপনার প্রশ্নের উত্তর আরও সম্পূর্ণরূপে দেয়। এই ওএস এক্স নির্দিষ্ট পতাকাটির জন্য ডকুমেন্টেশনগুলি খুঁজে পাওয়া শক্ত তবে এটি কমপক্ষে ওএস এক্স চিতাবাঘের থেকে কাজ করে চলেছে।


2
এটি যথাযথ উত্তর, এর পরে একটি ssh-add -Aযা কীচেইনে সমস্ত কী যুক্ত করবে। অতিরিক্ত হিসাবে, এটিও তৈরি ~/.ssh/configকরুন এবং যুক্ত করুন UseKeychain yesযাতে ম্যাকোস আপনার কীগুলি সর্বদা আপনার কী সংরক্ষণ করে রাখবে, এখানে বর্ণিত হিসাবে: unix.stackexchange.com/questions/140075/…
লুকাশারুদা

আমি চেষ্টা করেও রিবুট করার সময় আমার ম্যাকবুক আমার পরিচয়টি ভুলে যায়।
ডোমিনিক সায়ার্স

0

আপনার ssh কী পাসফ্রেজ সুরক্ষিত থাকলে এই সমাধানটি কার্যকর।

উপরে সব উত্তর সঙ্গে সমস্যা যে যদি আপনার ব্যক্তিগত কী পাসফ্রেজ সুরক্ষিত, প্রত্যেক সময় আপনি একটি নতুন টার্মিনাল শুরু করুন ও, আপনি পাসফ্রেজ টাইপ করার আছে ব্যক্তিগত কী ব্যবহার করতে চেষ্টা করুন এবং আপনি একাধিক কপি চলমান শেষ হবে ssh-agentএ স্মৃতি. সমাধানটি আপনার ~/.bashrcবা নিম্নলিখিতগুলিতে নিম্নলিখিতটি যুক্ত করা হয় ~/.zshrc:

##### START Fix for ssh-agent #####
# Ref: http://mah.everybody.org/docs/ssh

SSH_ENV="$HOME/.ssh/environment"

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
     echo succeeded
     chmod 600 "${SSH_ENV}"
     . "${SSH_ENV}" > /dev/null
     /usr/bin/ssh-add;
}

# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
     #ps ${SSH_AGENT_PID} doesn't work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
     }
else
     start_agent;
fi
##### END Fix for ssh-agent #####

আপনি যখন টার্মিনাল চালু করবেন কেবল একবার এটি আপনার ssh প্রাইভেট কী (গুলি) এর পাসফ্রেজের জন্য জিজ্ঞাসা করবে। পরবর্তীকালে নতুন টার্মিনাল সেশনগুলি (বা tmux sawions) খোলার ফলে উপরের স্নিপেট দ্বারা নির্মিত ssh-এজেন্টটিকে পুনরায় ব্যবহার করা হবে।

উল্লেখ

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