এসএসএইচ পাসফ্রেজ একবার প্রবেশ করুন


124

আপগ্রেড করার আগে

আমি git clone git@...যখন প্রতি কম্পিউটারে একবার চালাচ্ছি (এসএসএস ব্যবহার করে) চালাচ্ছিলাম তখন আমার এসএসএইচ পাসফ্রেজ forোকানোর জন্য একটি পাঠ্যবাক্সযুক্ত উইন্ডো ডায়ালগ উপস্থিত হয়েছিল এবং ঠিক আছে বলে নিশ্চিত হয়ে গেছে। তারপরে আমার সিস্টেমের পরবর্তী শুরু হওয়া পর্যন্ত পাসফ্রেজের আর প্রয়োজন ছিল না।

13.10 এ আপগ্রেড করার পরে

উবুন্টু 13.10 এ আপগ্রেড করার পরে সেই উইন্ডোটি আর উপস্থিত হয় না তবে টার্মিনালে একটি বার্তা উপস্থিত হয়:

Enter passphrase for key '/home/username/.ssh/id_rsa': 

... প্রতিবার একটি গিট সংগ্রহস্থল ক্লোন করার সময় এটি উপস্থিত হয়।

আমি এটা কিভাবে ঠিক করবো? আমি আমার পাসফ্রেজটি একবারে প্রবেশ করতে চাই।


1
আমি মনে করি এর জন্য আপনাকে ssh-addকমান্ডটি ব্যবহার করতে হবে। আপনি কি এটা চেষ্টা করেছেন?
ডিভাইস

2
আমি চেষ্টা করেছি ssh-agent bash+ ssh-add। এটি কেবল কয়েক মিনিটের জন্য কাজ করে।
আয়নিক বিজাউ

আমি সব পরে একই সমস্যা হচ্ছে। আমি মনে করি এটি ওপেনএসএইচ-এর এসএসএইচ-এজেন্ট এবং জিনোম কেরিং ডেমন এর মধ্যে বিরোধ হতে পারে।
ডিভাইস


2
যোগ AddKeysToAgent yes.ssh থেকে / কনফিগ আমার জন্য কাজ করে।
xslittlegrass

উত্তর:


138

আপডেট: 13.10 থেকে একটি বাগ বলে মনে হচ্ছে:

https://bugs.launchpad.net/ubuntu/+source/libpam-ssh/+bug/1247169


যাইহোক নীচের কমান্ডগুলি চালানো আমার জন্য সমস্যাটি স্থির হয়েছিল:

কিভাবে ঠিক করবো

আমি নিম্নলিখিত আদেশগুলি প্রবেশ করে এটি ঠিক করেছি:

$ ssh-agent bash

এটি একটি নতুন বাশ প্রক্রিয়া তৈরি করে যা আপনাকে ব্যক্তিগত কী যুক্ত করতে দেয়। একটি নতুন ব্যক্তিগত কী যুক্ত করার সময় আপনাকে একবার এবং একবারে পাসফ্রেজের জন্য অনুরোধ জানানো হবে।

এবং তারপর:

$ ssh-add /home/username/.ssh/id_rsa
Enter passphrase for /home/username/.ssh/id_rsa: 
Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)

... usernameআপনার ব্যবহারকারী নাম কোথায় আপনি $USERভেরিয়েবল ব্যবহার করে একই কাজ করতে পারেন :

$ ssh-add /home/$USER/.ssh/id_rsa

বিকল্পভাবে, কেবল ~আপনার বাড়ির ডিরেক্টরিতে ব্যবহার করুন ।

$ ssh-add ~/.ssh/id_rsa

এবং সমস্যা স্থির ছিল।


47
এটি সমস্যাটি মোটেও সমাধান করে না। আপনি কেবল টার্মিনাল থেকে বের না হওয়া অবধি এটি এজেন্টের সাথে পরিচয় যুক্ত করে। আপনি যদি নতুন টার্মিনালটি খোলেন তবে আপনাকে ssh-addআবার করতে হবে।
ডিভাইস

@ দেবীয়াস হ্যাঁ, এটি একটি বাগ বলে মনে হচ্ছে। তবে, উপরের কমান্ডগুলি আমার সমস্যার সমাধান করেছে ...
আয়নিক বিজাউ

3
সুতরাং স্পষ্ট করার জন্য: এই "ফিক্স" দিয়ে আপনাকে কেবল আবার সেই টার্মিনালে পাসফ্রেজ টাইপ করতে হবে না। যে মুহুর্তে আপনি একটি নতুন টার্মিনাল খোলেন - আপনাকে আবার পাসফ্রেজ দিতে হবে।
হরিজয়

9
আমি চেষ্টা করেছি $ ssh-add /home/username/.ssh/id_rsa(ছাড়াই ssh-agent bash) এবং এটি টার্মিনাল পুনরায় খোলার পরেও আমার পক্ষে কাজ করে। তবে আমার জন্য সম্পূর্ণ সমাধানটি হ'ল এটি একটি স্ট্যাকওভারফ্লো . com/a/4246809/532252 । মেশিনটি রিবুট করার পরেও সবকিছু ঠিক আছে।
কিশি

1
আমি কেবল টার্মিনালে ssh-add টাইপ করেছি। Ssh- এজেন্ট ব্যাশে স্যুইচ করতে বা কোনও id_rsa ফাইল নির্দিষ্ট করার দরকার নেই
henry74

39

0) সংক্ষিপ্ত উত্তর

.ssh/configশুরুতে আপনার এক লাইনে যুক্ত করুন:

AddKeysToAgent yes

এবং গিট / এসএস / চালান ... এটি পর্যাপ্ত না হলে আপনার এসএসএস সংস্করণটি পরীক্ষা করে দেখুন এবং এই নির্দেশাবলীতে ssh-এজেন্ট লোড হয়েছে কিনা তা পরীক্ষা করুন:

1) ওপেনশ সংস্করণ পরীক্ষা করুন

প্রথমে আপনার ssh সংস্করণটি পরীক্ষা করুন এটি অবশ্যই 7.2 এর সমান হতে হবে :

ssh -V

2) কনফিগার ফাইলটি সম্পাদনা করুন

যদি এটি .ssh/configহয় তবে শুরুতে আপনার এক লাইনে যুক্ত করুন :

AddKeysToAgent yes

3) ssh- এজেন্ট ইতিমধ্যে খোলা আছে কিনা তা পরীক্ষা করে দেখুন

সাধারণত বিতরণগুলি স্বয়ংক্রিয়ভাবে কোনও এসএস-এজেন্ট লোড করে। এটি পরীক্ষা করতে, চালান

ps aux | grep -v grep | grep ssh-agent

যদি আপনি এতে থাকা কোনও লাইন দেখতে না পান তবে আপনাকে এটি চালিয়ে লোড করতে হবে:

eval $(ssh-agent)

মনে রাখবেন এটি কেবলমাত্র বর্তমান টার্মিনালে এজেন্টকে সক্ষম করে, তাই এটিকে সর্বত্র সক্ষম করতে আপনি আপনার ~/.profileফাইলটিতে এই লাইনটি যুক্ত করার চেষ্টা করতে পারেন এবং পুনরায় বুট করতে পারেন।


11
AddKeysToAgent yesএবং - ক্যানোনিকাল পোস্ট-2016 উত্তর ঠিক কি অধিকাংশ আধুনিক ব্যবহারকারীদের জন্য সম্পর্কে grepping করছে। এটি 2017 সালের মাঝামাঝি। উবুন্টু> = 16.04 ( জেনিয়াল জেরাস ) এখন একটি যুক্তিসঙ্গত অনুমান। ওয়াইল্ডের বেশিরভাগ ওপেনএসএসএইচ ইনস্টলেশন এখন এই বিকল্পটিকে সমর্থন করে। এড-হক সাজানোর এই প্রশ্নের প্রত্যেক অন্যান্য উত্তর দ্বারা শিল্পমন্ত্রী শেল স্ক্রিপ্ট kludges তাই ... হয় বিগতযৌবনা</sigh>
সিসিল কারি

2
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত
সিমেরনেস

32

এই অ্যাটলিশিয়ান ডকুমেন্টটি আমার জন্য উবুন্টু 14.04 সার্ভার সংস্করণে সমস্যাটি স্থির করেছে:

এই .bashrcফাইলগুলিতে এই মানগুলি যুক্ত করুন:

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

এবং লগ ইন করার পরে, এটি একবারে পাসওয়ার্ড চাইবে এবং এটি ক্যাশে হবে। আপনার এটি প্রতিবার প্রবেশ করার দরকার নেই।


2
এটি অন্যান্য ডিস্ট্রোজে কাজ করছে বলে মনে হচ্ছে, যেমন আমি কেবল উত্তরটি সাবায়ন লিনাক্সে সফলভাবে ব্যবহার করেছি।
BH2017

1
ধন্যবাদ! এই সমাধানটি আমার জন্য একটি উবুন্টু সিস্টেমে কাজ করেছিল যেখানে জিনোম-কীরিং-ডেমন ডিবিস-ডেমন ইস্যুগুলির কারণে কাজ করে না। বিশেষত, আমি এই ত্রুটিগুলি পেয়েছিলাম "** বার্তা: ডিবিএস সেশন বাসের সাথে সংযোগ স্থাপন করতে পারেনি: এক্স 11 এর জন্য" ডিসপ্লে "ছাড়াই একটি ডিবিস-ডেমন অটল্যাচ করতে অক্ষম এবং প্রদর্শন পরিবেশের ভেরিয়েবল সেট করার পরে আমি" ** বার্তা: পারিনি 'ডিবিএস সেশন বাসের সাথে সংযোগ স্থাপন করবেন না: // বিন / ডিবিস-লঞ্চটি নিম্নলিখিত ত্রুটির সাথে অস্বাভাবিকভাবে শেষ হয়েছে: অটোলেঞ্চ ত্রুটি: এক্স 11 প্রারম্ভিককরণ ব্যর্থ হয়েছে। "
ব্যবহারকারী 207863

1
এটির জন্য আরও উন্নতি প্রয়োজন, ভার্চুয়ালাইজড উবুন্টু 16.04 জরিমানা সমস্যাটি সমাধান করে।
নীলস কেওরেন্টজেস 21

3
এটি আমার জন্য উইন্ডোজের জন্য বাশকেও সমস্যার সমাধান করে। আমি একাধিকবার বাশ চালু করার চেষ্টা করেছি এবং এতে পাসফ্রেজের কথা মনে পড়ে। এখনও পুনরায় চালু করার চেষ্টা করেন নি।
আমর

2
অন্যান্য সমস্ত সমাধান চেষ্টা করার পরে, এটি আমার পক্ষে কাজ করেছিল। এটি ওপি
জোও পিমেন্টেল

20

এই বাগের জন্য একটি কার্যপ্রণালী হ'ল নীচে নীচে যুক্ত করা~/.bashrc

eval `gnome-keyring-daemon --start`

2
জিনোম কীরিংটি কেবল আপনার সেশনের অংশ হওয়া উচিত নয়?
পাভেল Šিমেরদা

1
আপনি যদি 'উচিত' সম্পর্কে কথা বলছেন, তবে এই প্রশ্নটি এখানে প্রথম স্থানে থাকা উচিত নয়, যদি সবকিছুই নিখুঁত হয়
আনোয়ার

1
এটি নিশ্চিত কিনা তা নিশ্চিত .bashrc। দেখে মনে হচ্ছে আপনাকে এটি কোনও ডি প্রোফাইল ফাইলে যুক্ত করতে হবে
দিমিত্রি গিনজবার্গ

3

ফিশ শেলের ব্যবহারকারীরা একই কাজ করতে এই স্ক্রিপ্টটি ব্যবহার করতে পারেন ।

# content has to be in .config/fish/config.fish
# if it does not exist, create the file
setenv SSH_ENV $HOME/.ssh/environment

function start_agent                                                                                                                                                                    
    echo "Initializing new SSH agent ..."
    ssh-agent -c | sed 's/^echo/#echo/' > $SSH_ENV
    echo "succeeded"
    chmod 600 $SSH_ENV 
    . $SSH_ENV > /dev/null
    ssh-add
end

function test_identities                                                                                                                                                                
    ssh-add -l | grep "The agent has no identities" > /dev/null
    if [ $status -eq 0 ]
        ssh-add
        if [ $status -eq 2 ]
            start_agent
        end
    end
end

if [ -n "$SSH_AGENT_PID" ] 
    ps -ef | grep $SSH_AGENT_PID | grep ssh-agent > /dev/null
    if [ $status -eq 0 ]
        test_identities
    end  
else
    if [ -f $SSH_ENV ]
        . $SSH_ENV > /dev/null
    end  
    ps -ef | grep $SSH_AGENT_PID | grep -v grep | grep ssh-agent > /dev/null
    if [ $status -eq 0 ]
        test_identities
    else 
        start_agent
    end  
end


0

আপনি যদি Azure .ppk ফাইল ব্যবহার করেন

কেবল এটিকে পেমে রূপান্তর করুন এবং সাধারণ পদক্ষেপের সাথে 400 টি অনুমতি যোগ করুন:

sudo apt-get install putty
puttygen <path_to_key>/keyname.ppk -O private-openssh -o <path>/aws_key.pem
sudo chmod 400 <path>/aws_key.pem
ssh -vi aws_key.pem ubuntu@<ip_address>

0

উবুন্টু 18.04-এ, সেশন এক্স খোলা হলে ssh-এজেন্টটি শুরু হয়, এটি /etc/X11/Xsession.options ফাইলটিতে পরিচালনা করা হয়:

# cat /etc/X11/Xsession.options
# $Id: Xsession.options 189 2005-06-11 00:04:27Z branden $
#
# configuration options for /etc/X11/Xsession
# See Xsession.options(5) for an explanation of the available options.
allow-failsafe
allow-user-resources
allow-user-xsession
use-ssh-agent
use-session-dbus
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.