ssh-add অভিযোগ: আপনার প্রমাণীকরণ এজেন্টের সাথে কোনও সংযোগ খুলতে পারেনি


151

আমি ssh-addরাস্পবিয়ান চলমান একটি রাস্পবেরিপিতে কাজ করার চেষ্টা করছি ।

আমি শুরু করতে ssh-agentপারি, যখন আমি এটি করি তখন টার্মিনালটিতে নিম্নলিখিত ফলাফলগুলি দেওয়া হয়:

SSH_AUTH_SOCK=/tmp/ssh-06TcpPflMg58/agent.2806; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2807; export SSH_AGENT_PID;
echo Agent pid 2807;

আমি যদি দৌড়ে ps aux | grep sshযাই তবে দেখতে পাচ্ছি এটি চলছে।

তারপরে আমি ssh-addআমার কী পাসফ্রেজ যুক্ত করার জন্য চালানোর চেষ্টা করি এবং আমি নিম্নলিখিতটি পাই:

Could not open a connection to your authentication agent.

কোন ধারনা?


6
চেষ্টা করুনeval $(ssh-agent)
উলরিচ ড্যাঙ্গেল

উত্তর:


224

আপনার শেলটি সেই শেল কোড আউটপুট দ্বারা মূল্যায়ন করে ssh-agent। পরিবর্তে এটি চালান:

eval "$(ssh-agent)"

অথবা আপনি যদি ইতিমধ্যে এসএসএল-এজেন্ট শুরু করেছেন, তবে এটি আপনার শেল প্রম্পটে অনুলিপি করুন (ধরে নিবেন আপনি বোর্নের মতো শেল চালাচ্ছেন)।

sshকমান্ডগুলির সাথে কীভাবে কথা বলতে হবে ssh-agentতা জানতে হবে, তারা এটি SSH_AUTH_SOCKপরিবেশগত পরিবর্তনশীল থেকে জানে ।


ধন্যবাদ, আমি কীভাবে এটি কাজ করে তা বেশ বুঝতে পারি নি। যে খুব প্রশংসা করেছেন।
ড্যানিয়েল গ্রোভস

2
অথবা আপনি
ssh-

@ স্টেফেন, আমি কী এটি সঠিকভাবে পেয়েছি যে এসএসএল-এজেন্ট কমান্ড কেবলমাত্র এটির প্রয়োগের আউটপুট প্রিন্ট করে যখন ইভাল সংস্করণ আসলে কমান্ডটি চালায়?
অস্বীকার করেছেন এস

5
@DenysS। ঠিক আছে না, এটি এর সেটআপটি করে এবং তারপরে এটির সাথে যোগাযোগ করতে সক্ষম হওয়ার জন্য কীভাবে তার পরিবেশ আপডেট করতে হবে তা আপনার শেলকে বলে। এটি নিজে থেকে এটি করতে পারে না। এটি আপডেট হওয়া পরিবেশের সাথে একটি নতুন শেল শুরু করতে পারে (যা ssh-agent bashএটি করে) তবে এটি বিদেশী কমান্ড (আপনার ইতিমধ্যে চলমান শেল) চালিত পৃথক প্রক্রিয়ার মেমোরি আপডেট করতে পারে না।
স্টাফেন চেজেলাস

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

27

আর একবার চেষ্টা কর:

$ ssh-agent /bin/sh
$ ssh-add $yourkey

5
এটি আসলে আমার পক্ষে কাজ করেছিল যেখানে অন্যান্য উত্তরের কোনওটিই কাজ করে না।
জোসেফ তুষার

2
আপনি যদি ফিশ শেল ব্যবহার করছেন তবে এই উত্তরটি কাজ করে। ssh-agent /usr/bin/fish
স্ল্যাকমার্ট

1
": আমি কোনো ত্রুটির সম্মুখীন হয়েছেন আপনার প্রমাণীকরণ এজেন্টকে একটি সংযোগ খোলা যায়নি। "
IgorGanapolsky

@ স্ল্যাকমার্ট যদি আপনি BSD এ মাছ ইনস্টল করেন তবে এর অবস্থানটি /usr/local/bin/fish(বিকল্পভাবে /usr/ports/shells/fish)। whereisআমাকে এটি নির্ধারণ করতে সাহায্য করার জন্য কমান্ডকে ধন্যবাদ জানাই।
সিজেএম

দুর্দান্ত @ সিজেএম, আমি স্ল্যাকওয়ার লিনাক্স ব্যবহার করি এবং এটি আমার পক্ষে কাজ করে।
স্ল্যাকমার্ট

12

এই প্রশ্নটি স্ট্যাকওভারফ্লোতে খুব ভালভাবে কভার করা হয়েছে ।

eval `ssh-agent -s`

ssh-add

আপনি চারপাশে উদ্ধৃতি ভুলে গেছেন `...`। সেগুলি ছাড়াই আউটপুটটিতে স্প্লিট + গ্লোব অপারেটরটি চাওয়া হয়।
স্টাফেন চেজেলাস

6

শেল ( ফ্রিবিএসডি পিআই ) হিসাবে সিএসএস ব্যবহার করা হলে এটি কাজ করতে পারে:

eval `ssh-agent -c`

এর পরে আপনার কেবল এমন কিছু করতে হবে:

ssh-add ~/.ssh/id_rsa

": আমি কোনো ত্রুটির সম্মুখীন হয়েছেন আপনার প্রমাণীকরণ এজেন্টকে একটি সংযোগ খোলা যায়নি। "
IgorGanapolsky

2

আপনি নিম্নলিখিত বাক্য গঠন ব্যবহার করতে পারেন:

ssh-agent sh -c 'ssh-add && echo Do some stuff here.'

এটি আমার পক্ষে কাজ করছে না, আপনি যদি যান ssh-agent sh -c "ssh-add -l"তবে আপনাকে বলবে যে আপনার কোনও পরিচয় নেই।
আইন তোহভরি

কারণ আপনি এটি প্রথম যুক্ত করতে পারেন, উদাহরণস্বরূপ: ssh-agent sh -c "ssh-add && ssh-add -l"আপনার পরিচয় মুদ্রণ করবে।
কেনারব

1

এটি চেষ্টা করুন: যান C:\$Installation_Folder$\Git\cmd এবং কার্যকর করুন:

start-ssh-agent 

এটি একটি সিএমডি কমান্ড খুলবে এবং ssh-agentসঠিক পথে চালাবে ।

ssh-add ~/.ssh/id_rsa তাহলে কাজ করা উচিত।


" বাশ: স্টার্ট-
এসএস

1

এটি বিভ্রান্তিকর, এবং এর 2 সম্ভাব্য ভাল উত্তর রয়েছে, ব্যবহারকারীরা লিনাক্সে বা উইন্ডোজে (যেমন আমি রয়েছি) কোনও এসএসসি কী যুক্ত করার চেষ্টা করছে কিনা তার উপর নির্ভর করে। এটি সম্ভবত ওপিটির উত্তর দেয় না, তবে গিট-ব্যাশের জন্য এটি একটি সম্প্রসারণ। আমি বিকাশের জন্য উইন্ডোজ এবং উবুন্টু উভয়ই চালিত করি এবং আমার গিট ইনস্টল প্রতিটি ক্ষেত্রেই কিছুটা আলাদা।

এটি ব্যবহার করে দেখুন: সি: \ $ ইনস্টলেশন_ ফোল্ডার $ it গিট \ সেমিডিতে যান এবং সম্পাদন করুন:

start-ssh-এজেন্ট এটি একটি cmd কমান্ড খুলবে এবং ssh-এজেন্টকে সঠিকভাবে চালাবে।

.. একটি উইন্ডোজ উত্তর ছিল, তবে এটি উল্লেখ করতে ব্যর্থ হয়েছিল যে আপনি গিট ইনস্টলেশন ফোল্ডারটি খুঁজে পেতে উইন্ডোজ এক্সপ্লোরারের মাধ্যমে যাবেন এবং উইন্ডোজ শেলটি ধাপ 1 শেষ হওয়ার পরে খোলা হবে
"সি: $ _ ইনস্টলেশন_ফোল্ডারটিতে যান $ \ গীত \ cmd কমান্ড "

পদক্ষেপ 2: আপনাকে কেবল ডাবল ক্লিক করতে হবে

start-ssh-agent

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


1

সেখানে উপায়ে একটি দম্পতি আপনি, উবুন্টু সঙ্গে একটি পরিচয় ব্যবহার করতে যেমন চান, তাহলে এর sudo npm install

দীর্ঘ পথ , তবে আপনাকে রুট অ্যাক্সেসও দেয় যাতে আপনার sudoপ্রচুর ব্যবহারের প্রয়োজন হবে না ।

  1. চালান
    sudo ssh-agent bash
    এটি আপনার পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে ssh-agentএবং সুপারিশারের সুবিধাগুলি নিয়ে চলবে ,
  2. আপনার ব্যবহারকারীদের .ssh ফোল্ডারে নেভিগেট করুন
    cd /home/user/.ssh
  3. সেখান থেকে আপনি দৌড়াতে পারেন

    ssh-add id_rsa
    npm install git+ssh://git@YOUR-PROJECT-URL -g && npm link PROJECT-NAME
    

সংক্ষিপ্ত উপায় , কেবলমাত্র আপনার ব্যবহারকারী (যদি আপনি অনেক কিছু করতে চান না)

eval "$(ssh-agent)"
ssh-add
sudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install git+ssh://git@PROJECT-URL -g && sudo npm link PROJECT-NAME

exportএবং evalরুট যেমন কাজ করে তেমনি মূলের সরবরাহকৃত রুটের লগইন শেলটি বোর্নের মতো। রুটের শেলটি যদি csh বা tcsh হয় তবে ব্যবহার করুনeval `ssh-agent -c`
Stéphane Chazelas

নোট করুন যে আপনি rootনিজের এসএস-এজেন্টকেও অ্যাক্সেস দিতে পারবেনsudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install...
স্টাফেন চ্যাজেলাস

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

তুমি কি চেষ্টা করেছ? eval "$(ssh-agent)"রুশ হিসাবে চলমান বাশ শেলের প্রম্পটে প্রম্পটে কাজ করবে। আপনার অবশ্যই স্পষ্টভাবে sshসেই শেল বা এর বংশধর থেকে চালানো দরকার যাতে তারা এসএসএইচ_এইউথ_সোক এনভির ভার্ভের অধিকারী হয়। ডিফল্টরূপে SSH_AUTH_SOCK এনভেরিভ পাস করে না eval "$(sudo ssh-agent)"; sudo ssh...বলে কাজ করবে না sudo
স্টাফেন চেজেলাস

eval "$(ssh-agent)"কিছুটা কনফিগারেশন ত্রুটি আছে কিনা তা দেখার জন্য আমি পরে দেখার চেষ্টা করার চেষ্টা করেছি । যদিও এই উপায়টি আমি এই নির্দেশনা দিয়েছি তা আপনার ইতিমধ্যে রুট হওয়ার পরে আপনি কোন ব্যবহারকারী হতে চান এবং এটিতে কোনও ব্যবহারকারীকে সার্ভারে id_rsa thats অ্যাক্সেস করতে পারবেন তার উপর নিখরচায় নিয়ন্ত্রণের অনুমতি দেয়। সুতরাং একবার এটি সঠিকভাবে অসুস্থ হয়ে উঠলে আমার উত্তরটি সম্পাদনা করুন।
বেলডান্ডু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.