ssh- এজেন্ট সেট আপ হচ্ছে না (SSH_AUTH_SOCK, SSH_AGENT_PID env vars সেট করা নেই)


13

আমি কুবুন্টু 12.04 এ বন্ধুর জন্য একটি নতুন ব্যবহারকারী অ্যাকাউন্ট সেট আপ করেছি। তিনি যখন ব্যবহার করেন sshতখন এই ত্রুটিটি পান:

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

আমরা sshকয়েকটি ব্যাশ স্ক্রিপ্টে চলছে ।

এই ত্রুটি ঘটাতে পারে এমন বিস্তৃত জিনিসগুলির চারপাশে দেখার পরে আমি এই সমাধানটি পেলাম:

$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa

তারপরে sshপ্রত্যাশা অনুযায়ী তিনি কমান্ডগুলি (এবং ব্যাশ স্ক্রিপ্টগুলি) চালাতে পারবেন ।

এই দুটি কমান্ড চালানোর আগে, এনভিভ ভেরিয়েবলগুলি টার্মিনালে সেট করা থাকে না:

$ echo $SSH_AGENT_PID

$ echo $SSH_AUTH_SOCK

$ 

কমান্ডগুলি চালনার পরে, env ভেরিয়েবলগুলি প্রত্যাশার মতো সেট করা হয়। তবে সেগুলি স্থির থাকে না (উদাহরণস্বরূপ, অন্য কোনও শেলের মধ্যে বা রিবুট করার পরে)।

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

আমি ম্যান পৃষ্ঠায় এই তথ্যটি দেখছি, তবে এটি আমাকে জানায় না যে উবুন্টু কীভাবে সাধারণত এজেন্টটি স্বয়ংক্রিয়ভাবে সেটআপ করে চলেছে বা আমার বন্ধুর মেশিনে কী ঘটছে যাতে এটি তার পক্ষে কাজ করে না।

এজেন্ট স্থাপনের জন্য দুটি প্রধান উপায় রয়েছে: প্রথমটি হ'ল এজেন্ট একটি নতুন সাবকম্যান্ড শুরু করে যার মধ্যে কিছু পরিবেশের ভেরিয়েবলগুলি রফতানি করা হয়, যেমন ssh-এজেন্ট xterm এবং। দ্বিতীয়টি হ'ল এজেন্ট প্রয়োজনীয় শেল কমান্ডগুলি মুদ্রণ করে (হয় sh (1) বা csh (1) সিনট্যাক্স তৈরি করা যেতে পারে) যা কলিং শেলটিতে উদ্ভাসিত হতে পারে, যেমন শর ssh-agent -s(1) বা বোর্নের ধরণের শেলগুলির জন্য ev ksh (1) এবং ssh-agent -ccsh (1) এবং ডেরিভেটিভস এর জন্য eval ।

ইনস্টল acctএবং রিবুট করার পরে , এটি এর আউটপুট lastcomm:

ssh-agent         F    newuser __         0.12 secs Wed Aug  7 11:02
ssh-agent         F    newuser __         0.00 secs Wed Aug  7 20:34
ssh-agent         F    newuser __         0.02 secs Wed Aug  7 20:02
ssh-agent         F    newuser __         0.01 secs Thu Aug  8 12:39
ssh-agent         F    newuser __         0.02 secs Thu Aug  8 07:45

ম্যান পৃষ্ঠা থেকে:

F - কমান্ড একটি কাঁটাচামচ পরে কিন্তু নিম্নলিখিত নির্বাহী ছাড়া চালিত

আমি তা নিশ্চিত কিনা তা উল্লেখযোগ্য কিনা।


2
উবুন্টুর অধীনে, ssh-agentসাধারণত থেকে শুরু হয় /etc/X11/Xsession.d/90x11-common_ssh-agent। এ use-ssh-agentথেকে সরিয়ে দমন করা যায় /etc/X11/Xsession। এই ফাইলগুলি কি সঠিক? এজেন্টটি কি আরম্ভ হয় এবং তারপরে হত্যা করা হয় বা কখনও শুরু হয় না? ( কী প্রোগ্রামগুলি চালু হয়েছিল তা দেখার জন্য লগ ইন করার পরে ইনস্টল করুন acctএবং চালান lastcomm))
গিলস 'অশুভ হওয়া বন্ধ করুন'

@ গিলস-আপনাকে ধন্যবাদ এই দুটি ফাইল আমার মেশিন এবং তার মেশিনে অভিন্ন। আমাদের দু'জনেই আছে X11/Xsession.options:use-ssh-agentএবং X11/Xsession.d/90x11-common_ssh-agent:SSHAGENT=/usr/bin/ssh-agent। আমি চেষ্টা করব acctএবং lastcommপরবর্তী ধন্যবাদ
মাউন্টেনএক্স

আপডেট হওয়া প্রশ্ন
মাউন্টেনএক্স

এখনও সমাধান খুঁজছেন ...
মাউন্টেনএক্স

lastcommসম্পূর্ণ ssh-agentপ্রক্রিয়াটির জন্য আউটপুট পোস্ট করুন , না শুধুমাত্র প্রক্রিয়া। মূল বিষয়টি হল বিভিন্ন ক্রিয়াকলাপ কী অর্ডারে শুরু হয় তা।
গিলস 'অশুভ হওয়া বন্ধ করুন'

উত্তর:


0

আপনি উল্লেখ করেছেন যে আপনার ব্যবহারকারী sshস্থানীয়ভাবে লগ ইন করছেন না ing সুতরাং use-ssh-agentমধ্যে /etc/X11/Xsession.optionsএকটি লাল হেরিং: এটি, SSH- র সেশন উপর মৃত্যুদন্ড কার্যকর করা হবে না শুধুমাত্র যখন স্থানীয়ভাবে একটি ব্যবহারে X11 গুই ডেস্কটপে লগ-ইন (অথবা VNC অথবা RDP উপর মত কিছু ভার্চুয়াল X11 সেশন ব্যবহার করে)।

পরিবর্তে, আপনার libpam-sshদুটি সিস্টেমে ইনস্টল করা আছে কিনা তা পরীক্ষা করা উচিত । এটি কোনও এসএসএইচ প্রাইভেট কী পাসফ্রেসগুলি ব্যবহার করে কোনও ব্যবহারকারীকে প্রমাণীকরণ করার জন্য কনফিগার করা যেতে পারে তবে এটি alচ্ছিক এবং আপনাকে ~/.ssh/login-keys.d/এই কার্যকারিতাটির জন্য বিশেষত কীটি রাখতে হবে।

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


3

জন্য

$ eval `ssh-agent -s`

একটি "স্টার্টআপ স্ক্রিপ্ট" স্থাপনের সময় কাজ করুন, আপনার সেশন এবং শেষ পর্যন্ত আপনি যে পরিবেশটির প্রত্যাশা করছেন তা অবশ্যই সেই স্ক্রিপ্টের বংশধর (অবশ্যই forkএবং exec) হতে হবে। কারণ হ'ল আউটপুট ssh-agent -s, যখন মূল্যায়ন করা হয় তখন শেলeval কলিংয়ে পরিবেশের ভেরিয়েবল সেট করে । সেখানে গঠন করুন, সেগুলি হস্তান্তরিত হতে পারে এবং সেগুলি পথে হারিয়ে যেতে পারে।

সুতরাং যদি ssh-agentলগইন চলাকালীন স্ক্রিপ্ট এ কোথাও চালিত হয় তবে আপনি যে শিরোনামে শেল স্ক্রিপ্ট শুরু করবেন তা টার্মিনাল বি এর বংশধর নয় , তবে আপনি বিতে পরিবেশ দেখতে পারবেন না

যদি আপনি পরিষেবা ssh-agentহিসাবে শুরু করে থাকেন systemd --userতবে এর পরিবর্তে আপনাকে কনভেনশনটি ব্যবহার করতে হতে পারে: ssh-agent ভেরিয়েবলগুলি নির্দিষ্ট করতে দেবেন না , তবে এজেন্ট শুরু করার সময় এবং সেশন শুরু করার সময় সাধারণ জ্ঞান ব্যবহার করুন। যেমন, আমার ~/.config/systemd/user/ssh-agent.serviceচেহারাটি এরকম:

[Unit]
Description=SSH agent

[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK

[Install]
WantedBy=default.target

এবং আমার ~/.profileমধ্যে লাইন আছে

export SSH_AUTH_SOCK="${XDG_RUNTIME_DIR}/ssh-agent.socket"

মনে রাখবেন যে, %tসাবেক অনুরূপ করা ${XDG_RUNTIME_DIR}পরেরটির হবে।

দ্রষ্টব্য: আমি এ সম্পর্কে খুশি নই!


1

আমি উত্তর এখানে পেয়েছি:

http://www.bernatchez.net/userauth.html

উবুন্টুতে ssh-add ইউটিলিটি শংসাপত্রের ফাইলগুলি লোড করতে ব্যর্থ হয়। এটি ঘটে যখন এজেন্ট হ'ল জিনোম-কিরিং দ্বারা প্রয়োগ করা হয়। ফিক্সটি হ'ল জিনোম-ক্যারিংয়ের ssh উপাদান ব্যবহার বন্ধ করা। যেহেতু প্রারম্ভিককরণ প্রক্রিয়াটি প্রকৃতপক্ষে একটি সত্য এসএস-এজেন্ট শুরু করে এবং তারপরে জিনোম-কেরিং-এসএস.এস.এসপটপ চালু করে যা এটি গ্রহণের জন্য এথথসকেটকে ক্লোবার্স করে, আমরা জিনোম-কীরিং-এসএসএস.ডেস্কটপটি অক্ষম করে মূল এসএস-এজেন্টে ফিরে যেতে পারি।

জিনোম-কিরিং-এসএসএস.ডেস্কটপ অক্ষম করুন:

cd /etc/xdg/autostart/
sudo emacs gnome-keyring-ssh.desktop

ডেস্কটপ ফাইলে নিম্নলিখিত লাইনটি যুক্ত করুন এবং এটি সংরক্ষণ করুন, তারপরে পুনরায় বুট করুন:

X-GNOME-Autostart-enabled=false

0

আপনি যে উল্লেখ করেছেন

$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa

পছন্দসই হিসাবে কাজ করে। সুতরাং আপনার কেবলমাত্র .bash_profile বা .xsession এ সঠিক সময়ে সম্পাদন করা উচিত। ডিবাগ স্টেটমেন্টগুলি যুক্ত করুন (date; env|sort) >> /tmp/logযখন এগুলি চালিত হয় তখন আপনাকে ঠিক বুঝতে সহায়তা করে।

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