গিট আমার ssh কী পাসফ্রেজের জন্য আমাকে জিজ্ঞাসা করে


537

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

কি কারণ হতে পারে?


উত্তর:


1038

একবার আপনি এসএসএইচ এজেন্ট দিয়ে শুরু করলে:

eval $(ssh-agent)
  1. আপনাকে এটিতে আপনার ব্যক্তিগত কী যুক্ত করতে হবে:

    ssh-add
    

    এটি আপনাকে একবারে আপনার পাসফ্রেজ জিজ্ঞাসা করবে, এবং এরপরে আপনাকে ধাক্কা দেওয়ার অনুমতি দেওয়া উচিত, যদি আপনি গিথুবে সর্বজনীন কী আপলোড করেন।

  2. ম্যাকোজে স্থায়ীভাবে কী সংরক্ষণ করতে:

    ssh-add -K  
    

    এটি ব্যবহারকারীর কীচেইনে সংরক্ষণ করে এটি বন্ধ করে এবং এটি পুনরায় খোলার পরে এটি অবিরত থাকবে।


16
সার্ভারের লগ-আউট, আবার ফিরে এসএসএস করুন, চালান git pull, আমাকে আবার পাসওয়ার্ডের জন্য অনুরোধ করুন।
সাইবার 8200

35
ssh-add -Kএটি বন্ধ করে দেওয়ার পরে এবং এটি ব্যবহারকারীর কীচেইনে সংরক্ষণ করে এটি পুনরায় খোলার পরে এটি চালিয়ে যাবে।
কর্ক

72
@ কিরক ssh-add -Kনিম্নলিখিতটি দেয়:unknown option -- K usage: ssh-add [options] [file ...] Options: -l List fingerprints of all identities. -L List public key parameters of all identities. -k Load only keys and not certificates. -c Require confirmation to sign using identities -t life Set lifetime (in seconds) when adding identities. -d Delete identity. -D Delete all identities. -x Lock agent. -X Unlock agent. -s pkcs11 Add keys from PKCS#11 provider.
সন্দীপ সি

13
আমি এখনও নির্বিশেষে একটি পাসফ্রেজের জন্য অনুরোধ করব।
ইগোরগানাপলস্কি

21
-Kআপেল নির্দিষ্ট। দেখুন help.github.com/articles/...
bkdir

238

ওএস এক্স এল ক্যাপ্টেন (10.11) থেকে ম্যাকওএস সিয়েরা (10.12) এ আপগ্রেড করার পর থেকে এটি আমার পুনরায় চালু হওয়ার পরে ঘটছে। ssh-addসমাধান সাময়িকভাবে কাজ কিন্তু অন্য পুনর্সূচনা জুড়ে জিদ না।

স্থায়ী সমাধানটি সম্পাদনা (বা তৈরি করা) ~/.ssh/configএবং UseKeychainবিকল্পটি সক্ষম করা ছিল ।

Host *
    UseKeychain yes

সম্পর্কিত: আমি সিয়েরায় আপডেট হওয়ার পর থেকে ম্যাকোস আমার এসএস পাসফ্রেজ জিজ্ঞাসা করে


1
আমার জন্য কাজ করেছেন ধন্যবাদ ... আমি করেছিলাম ... ssh-add -K /Users/***/.ssh/git/id_rsaতবে এটি টার্মিনাল পুনরায় চালু হওয়ার পরেও কাজ করছে না ... আপনাকে ধন্যবাদ
নলবার্গস

2
কেন এমন হতে চান? প্রযুক্তিগত নোট পড়ুন OpenSSH- র পরিবর্তন developer.apple.com/library/content/technotes/tn2449/...
samwize

62

যদি আপনি চেষ্টা করে থাকেন ssh-addএবং আপনাকে এখনও আপনার পাসফ্রেজ প্রবেশ করার অনুরোধ জানানো হয় তবে ব্যবহার করার চেষ্টা করুন ssh-add -K। এটি আপনার কীচেইনে আপনার পাসফ্রেজ যুক্ত করে।

আপডেট: আপনি যদি ম্যাকস সিয়েরা ব্যবহার করছেন তবে আপনার সম্ভবত আরও একটি পদক্ষেপ করা দরকার কারণ উপরের দিক থেকে আর কাজ করা হতে পারে না। আপনার সাথে নিম্নলিখিতগুলি যুক্ত করুন ~/.ssh/config:

Host *
  UseKeychain yes

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

@ ইগোরগানাপলস্কি আপনি কি ম্যাকস সিয়েরা ব্যবহার করছেন? যদি তা হয় তবে উত্তরে আমি কী যুক্ত করেছি তা পরীক্ষা করে দেখুন। আমি আশা করি এটি সাহায্য করবে.
ড্যারিল ইয়ং

2
হ্যাঁ, আমি সিয়েরায় আছি যাইহোক, এখানে লাইনটি আমার জন্যও কাজ করেছে: অ্যাডকিসটসএজেন্ট হ্যাঁ
ইগোরগানাপলস্কি

1
এটি বিটবকেট ক্লাউডের সাথেও কাজ করে। গিটক্রকেনে আমার সমস্যা ছিল এবং এটি আমার সমস্যাগুলি সমাধান করেছে।
মালাচি

54

আমি নিম্নলিখিত চেষ্টা করব:

  1. গিটব্যাশ শুরু করুন
  2. আপনার ~/.bashrcফাইল সম্পাদনা করুন
  3. ফাইলটিতে নিম্নলিখিত লাইনগুলি যুক্ত করুন

SSH_ENV=$HOME/.ssh/environment

# start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."
    # spawn 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
}

if [ -f "${SSH_ENV}" ]; then
     . ${SSH_ENV} > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi
  1. সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন
  2. বন্ধ
  3. গিটব্যাশ পুনরায় খুলুন
  4. আপনার পাসফ্রেজ প্রবেশ করান

4
ভবিষ্যতের রেফারেন্সের জন্য, এটি এর সাথেও কাজ করে zsh। এটি এটিকে যুক্ত করুন.zshrc
আর্দা

2
আমি বিশ্বাস করি এটি ধরে নিয়েছে আপনার কীফাইল বলা হয়েছে id_rsa। আপনার যদি কাস্টম নাম থাকে তবে আপনার উদাহরণ ব্যবহার করা উচিত। /usr/bin/ssh-add ~/.ssh/custom_filename
জুহা আনটিনেন

2
এই স্ক্রিপ্টটির কী হবে তা আপনি ব্যাখ্যা করতে পারেন?
লিআর

2
@ ইতিমধ্যে এটি চলমান না থাকলে এটি ssh-এজেন্ট শুরু করুন, যা আপনাকে প্রতিটি ধাক্কায় (কম-বেশি) এসএসএস পাসফ্রেজ জিজ্ঞাসা না করার বিষয়টি নিশ্চিত করে।
রোল্যান্ড

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

27

উইন্ডোজে আমার জন্য যা কাজ করা হয়েছিল তা হ'ল (আমি কোনও রেপো থেকে কোড ক্লোন করেছিলাম):

eval $(ssh-agent)
ssh-add 
git pull 

এই সময়ে এটি আমার পাসফ্রেজের জন্য আমাকে শেষ বারের জন্য জিজ্ঞাসা করেছিল

ক্রেডিট: সমাধানটি /unix/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucket থেকে নেওয়া হয়েছিল


27

এটি আপনার ~ / .ssh / কনফিগারেশনে যুক্ত করার চেষ্টা করুন :

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

... ধরে নিচ্ছি আপনার প্রাইভেট কীটির নাম দেওয়া হয়েছে id_rsa


11
UseKeychain হ্যাঁ কেবল ম্যাকের জন্য বৈধ
Oz123

3
@ ওজ 123 উইন্ডোজগুলির সমতুল্য
ইগোরগানপলস্কি

@ Oz123 আমি Windows এ সমতুল্য মনে AddKeysToAgent হ্যাঁ এই উত্তর চেক stackoverflow.com/questions/52423626/...
fedeteka

6

আমার একই রকম সমস্যা ছিল, তবে অন্যান্য উত্তরগুলি আমার সমস্যাটিকে ঠিক করে নি। আমি ভেবেছিলাম যে আমার মতো অন্য কারো যদি খুব খারাপ সেটআপ হয় তবে আমি এটি এগিয়ে গিয়ে পোস্ট করব।

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

আমি সবেমাত্র কীটি মুছে ফেললাম যা এটি আমাকে পাসফ্রেজের জন্য অনুরোধ করতে ব্যবহার করেছিল এবং এখন এটি কাজ করে!


5

দেখে মনে হচ্ছে আপনার নিজেরাই এসএসএইচ-এজেন্টের সাথে সমস্যা হচ্ছে। আমি এটির সমস্যা সমাধানের চেষ্টা করব।

1) আপনি কি এসএসএইচে আপনার কী যুক্ত করতে এসএসএড-অ্যাড করেছিলেন?

2) আপনি ব্যবহারগুলির মধ্যে টার্মিনাল উইন্ডোটি বন্ধ করে দিচ্ছেন, কারণ আপনি উইন্ডোটি বন্ধ করলে আবার পাসওয়ার্ডটি খুলতে হবে when


2
জেফ ওয়েলিংয়ের প্রথম সমস্যাটি কীভাবে সমাধান করা যায় সে সম্পর্কে তথ্য যুক্ত করতে ভাল লাগবে।
রানু

5

যদি উপরের সমাধানগুলি আমার পক্ষে কাজ করে না, তবে একটি জিনিস যাচাই করতে হবে তা হল আপনার কাছে জনসাধারণের কী (সাধারণত id_rsa.pub) রয়েছে। এটি অস্বাভাবিক নয়, তবে এটি আমার জন্য কারণ ছিল।

আপনার ব্যক্তিগত কী থেকে আপনার সর্বজনীন কী তৈরি করতে:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

1

আমি বিভিন্ন সমাধান চেষ্টা করি কিন্তু কিছুই সাহায্য করে না। তবে এই পদক্ষেপগুলি ( আমার গিটব্যাশ এসএসএইচ পরিবেশ সর্বদা আমার পাসফ্রেজের জন্য জিজ্ঞাসা করে, আমি কী করতে পারি? ) বিটবুকিট.কম.সামগ্রন্থগুলি থেকে ভাল কাজ করে:

ধারণাটি হ'ল:

  1. আপনি ~/.bashrcফাইল তৈরি করুন

  2. অনুসরণ করুন স্ক্রিপ্ট:

    SSH_ENV=$HOME/.ssh/environment
    
    # start the ssh-agent
        function start_agent {
        echo "Initializing new SSH agent..."
        # spawn 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
    }
    
    if [ -f "${SSH_ENV}" ]; then
         . "${SSH_ENV}" > /dev/null
         ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
            start_agent;
        }
    else
        start_agent;
    fi
    
  3. পুনরায় রান করুন


1

আর একটি সম্ভাব্য সমাধান যা উপরে উল্লিখিত হয়নি তা হ'ল নিম্নলিখিত কমান্ডটি দিয়ে আপনার রিমোটটি পরীক্ষা করা:

git remote -v

যদি রিমোটটি গিট দিয়ে শুরু না হয় তবে https থেকে শুরু হয় তবে আপনি নীচের উদাহরণ অনুসরণ করে এটিকে গিটে পরিবর্তন করতে চাইতে পারেন।

git remote -v // origin is https://github.com/user/myrepo.git
git remote set-url origin git@github.com:user/myrepo.git
git remote -v // check if remote is changed
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.