আমি কীভাবে এই এসএস-এজেন্ট সমস্যাটি সমাধান করতে পারি?


17

আমি লিনাক্স মিন্ট ব্যবহার করছি, এবং লগইন করার সময় স্বয়ংক্রিয়ভাবে আনলক করতে জিনোম-কীরিং পেতে সক্ষম হইনি, মনে হয়।

আমার সমস্যার একটি লক্ষণ নিম্নরূপ:

$ ssh-add
Identity added: /home/me/.ssh/id_rsa (/home/me/.ssh/id_rsa)

$ git pull
WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-Nmf3J3/pkcs11: No such file or directory

আমি কীভাবে এটি তৈরি করতে পারি যে আমার কাছ থেকে কোনও পাসফ্রেজ ইনপুট ছাড়াই গিটটি ধাক্কা / টানতে পারে?

আমি বুঝতে পারলাম এখানে জিনোম-কীরিং এবং এসএসএল এজেন্ট সহ বেশ কয়েকটি জিনিস রয়েছে তবে এটি পেরেক দিতে সক্ষম হয় নি।

ssh-addএকটি অধিবেশন চলমান মানে এই যে আমাকে আর এসএসএইচ / গিটের জন্য আমার পাসফ্রেজ জিজ্ঞাসা করা হবে না।

সমস্যাটি হ'ল ssh-addপ্রতিটি অধিবেশন চলাকালীন আমার চালানো দরকার G লনিনে জোনমের কীরিং আনলক করতে হবে তা অবশ্যই আমার অনুপস্থিত।

$ export | grep GNOME          
GNOME_KEYRING_CONTROL=/tmp/keyring-hjMM4V
GNOME_KEYRING_PID=1961

এটি প্রথম সম্পাদনা হিসাবে একই অধিবেশন চলাকালীন আবার ঘটেছিল। আমি করেছি git pullএবং পেয়েছি WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-hjMM4V/pkcs11: No such file or directory

$ env | grep SSH
SSH_AGENT_PID=2116
SSH_AUTH_SOCK=/tmp/ssh-OACxJMBY2038/agent.2038

$ ps -fp $SSH_AGENT_PID
UID        PID  PPID  C STIME TTY          TIME CMD
eoin      2116  2038  0 09:47 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager

1
আপনি চালাতে export | grep GNOMEএবং ফলাফল পোস্ট করতে পারেন। আপনি এই বাগটি দেখেছেন ?
ডডস্টার

প্রাসঙ্গিক বাগের মতো দেখায়। যেহেতু আমি সর্বদা সতর্কতাটি দেখতে পাই না, তাই আমি নিশ্চিত নই gnome-keyringযে লগইনে স্বয়ংক্রিয়ভাবে আনলক করতে আমার যদি খুব সহজ সমস্যা হয়।
ইয়নোক

জিনোম-কিরিং চলার চেয়ে সম্ভবত আপনার অন্য এজেন্ট রয়েছে। কী env | grep SSHএবংps -fp $SSH_AGENT_PID
স্টাফেন চেজেলাস

@ স্টাফেন চ্যাজেলাস আমি আপনাকে পরামর্শ দিয়েছি যা যোগ করেছি, ধন্যবাদ। হ্যাঁ, আমি জীবনকে চালিয়েছি zshএবং tmuxচালিয়েছি (কেবল এটি উল্লেখ করার জন্য)।
eoinoc

উত্তর:


2

যা হ'ল তার অর্থ হ'ল:

আপনি একটি জিনোম সেশন শুরু করেন, তার একটি অংশ জিনোম-কেরিং ডেমন (যা একটি এসএস এজেন্ট হিসাবেও কাজ করে) শুরু হয় এবং সেই জিনোম সেশনের সময় যে কোনও পরিবেশের শুরু হয় সেই সংস্থার এজেন্টের সাথে কীভাবে যোগাযোগ করা যায় সে সম্পর্কে তথ্য আপডেট করা হয়। গ্রাফিকভাবে লগ ইন করার পরে আপনি যে পাসওয়ার্ডটি ইস্যু করছেন তা ডিফল্ট কীরিং আনলক করতে ব্যবহৃত হয়।

আপনি যখন ssh-এজেন্ট হিসাবে জিনোম-ক্যারিং ব্যবহার করেন, আপনি অন্য কোনও এজেন্টের মতো ব্যবহার করতে চান না ssh-agent

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

আপনি যা করতে পারেন তা হ'ল:

gnome-keyring-daemon -r > ~/.gkr

কি . ~/.gkrসব শাঁস আপনি নতুন জিনোম-keyring ব্যবহার করতে চান

জিনোম-কীরিং-ডেমন সংযোগ করতে চলেছে সেই বিষয়ে যে কোনও ডিসপ্লে থেকে সতর্ক হন।


আপনি কী বলতে চান এটি কেবল তখনই যখন আমার এক্স সেশনটি শেষ হয়, অন্য কথায় যখনই আমি লগ আউট করি এবং আবার লগ ইন করি? আমার নেই .gkr, আমার উচিত? যে ডিসপ্লেতে gnome-keyring-daemonসংযুক্ত হতে চলেছে সে সম্পর্কে আমি কীভাবে সতর্ক হতে পারি ?
ইয়নোক

2

প্রথম জিনিসটি আমি চেষ্টা করব apt-get install ssh-askpass-gnomeঅন্যথায় যদি আপনার কাছে প্যাকেজটি (বা কোনও বিকল্প জিজ্ঞাসা কর্মসূচি) ইনস্টল না করা থাকে তবে জিনোম আপনাকে আপনার পাসওয়ার্ডের জন্য অনুরোধ করতে পারে না যখন আপনার কীটি আনলক করার দরকার পড়ে।

আপনার DISPLAYভেরিয়েবলটি সঠিকভাবে সেট করতে হবে:

$ echo $DISPLAY
:0.0

এছাড়াও, আপনি কীভাবে আপনার টার্মিনালটি শুরু করছেন? আপনি যেভাবে টার্মিনাল সেশন শুরু করছেন এবং এটি উত্তরাধিকার সূত্রে প্রাপ্ত কিনা তা নিয়ে কোনও সমস্যা হতে পারে gnome-session। আপনি যখন আপনার কী বাইন্ডিং সেট করতে কিছু গন-জিনোম প্রোগ্রাম ব্যবহার করেন তখন এটি ঘটতে পারে।

মনে হচ্ছে আপনি ব্যবহার gnome-terminalকরছেন তা ব্যবহার করে পরীক্ষা করতে পারেন pstree। এখানে আপনি সঠিক উত্তরাধিকার ঘটতে দেখতে পাবেন:

$ pgrep gnome-terminal | xargs -l1 pstree -s 
init(1)───lightdm(1643)───lightdm(26912)───gnome-session(27049)───xmonad-x86_64-l(27139)───gnome-terminal(26036)─┬─bash(26041)
                                                                                                                 ├─gnome-pty-helpe(+
                                                                                                                 ├─{gnome-terminal}+
                                                                                                                 ├─{gnome-terminal}+
                                                                                                                 └─{gnome-terminal}+

যদিও এই সেশনে এটি উত্তরাধিকার সূত্রে প্রাপ্ত নয় gnome-session:

$ pgrep gnome-terminal | xargs -l1 pstree -s 
init(1)───sh(25919)───gnome-terminal(25920)─┬─bash(25927)
                                            ├─gnome-pty-helpe(25926)
                                            ├─{gnome-terminal}(25921)
                                            ├─{gnome-terminal}(25924)
                                            └─{gnome-terminal}(25928)

এছাড়াও, যা পরীক্ষা ssh-agentকরে দেখুন gnome-session:

$ pgrep ssh-agent | xargs -l1 pstree -s
init(1)───lightdm(1643)───lightdm(26912)───gnome-session(27049)───ssh-agent(27091)

আমি কী টার্মিনালটি ব্যবহার করছি তা সম্পর্কে কিছুটা জটিল (আমার নিজের দোষ!)। আমার টার্মিনাল প্রবর্তন কমান্ডটি mate-terminal --maximize -e tmux(যা আমি অনুমান করি যে জিনোম-টার্মিনাল)। তদ্ব্যতীত, zshতারপর মধ্যে লোড হয় tmuxssh-askpass-gnomeইনস্টল করা হয়েছিল $DISPLAYফলাফল প্রত্যাশিত আছে। উত্তরাধিকারের জন্য, কোনও মেনশন না করে tmuxবসে আছেন । একটি পৃথক শাখায়, এটি । আপনার শেষ প্রশ্নের উত্তর দেওয়ার জন্য আউটপুট হল: । আপনি কি মনে করেন? ধন্যবাদ। mate-terminalgnome-sessiontmux───zsh───xargs───pstreeinit───mdm───mdm───x-session-manag───ssh-agent
ইয়োনোক

ঠিক আছে, অনুমান করে আপনি জিনোম ব্যবহার করেন (এবং আমি মনে করি যে পুদিনাটি ডিফল্টরূপে করে, সুতরাং আপনি যদি এটি ডিফল্ট থেকে পরিবর্তন না করেন?) তবে আমি মনে করি যে আপনার mate-terminalউত্তরাধিকার সূত্রে প্রাপ্ত gnome-sessionহওয়া সমস্যা নয়। দুটি প্রশ্ন: 1) এর ফলাফল কি pgrep -fl gnome-sessionএবং; ২) আপনার টার্মিনালটি চালু করতে আপনি কী পদক্ষেপ গ্রহণ করেন? একটি মেনু থেকে? একটি হট-কি বাঁধাই থেকে? বা ????
অ্যাকুলিচ

হ্যাঁ, আমি জিনোমে আছি। 1) আউটপুট খালি। 2) খুব আকর্ষণীয়। আমি সাধারণত করি Ctrl+Alt+t। এটি আমার শর্টকাট Keyboard Shortcutsযা আমি পূর্বে উল্লিখিত কমান্ডটি ব্যবহার করে লিনাক্স মিন্ট অ্যাপ্লিকেশনটি ব্যবহার করে সেট করেছি। যাইহোক , Terminalপ্রধান "স্টার্ট" মেনুতে লঞ্চ করার সময় , এসএসএইচ অন্যরকম অভিনয় করেছিল । জিনোম জিইউআই আমাকে আমার পাসওয়ার্ডটি আমার ক্যারিংয়ের জন্য অনুরোধ করেছিল। পরবর্তী সেশনের জন্য এই পাসফ্রেজটি সংরক্ষণ করার বিকল্পটি ধূসর হয়ে গেছে, আমি এটি নির্বাচন করতে পারিনি। (মেনু লঞ্চার কমান্ডটিও রয়েছে mate-terminal --maximize -e tmux)) এটি কি আমাদের আরও কাছাকাছি আসে? ধন্যবাদ, অ্যাকুলিচ
ইয়নোক

আপনি যদি Ctrl+Alt+tকীবোর্ড শর্টকাটগুলিতে সেট করেছেন তার সাথে যদি আপনি এই বিশ্রী আচরণটি দেখছেন তবে আমি মনে করি আপনি সম্ভবত এমডিএম / মেটে একটি বাগটি ভোগ করছেন। আপনি কি মিন্টের সংস্করণটি চালাচ্ছেন?
অ্যাকুলিচ

লিনাক্স মিন্ট ১৩-এ আমি একটি সংস্করণ পিছনে আছি। তবে মেনু-অ্যাক্সেস হওয়া টার্মিনালের জন্য, কেন এটি এখনও আমাকে "প্রতিটি বার লগ ইন করার জন্য এই পাসফ্রেজটি সংরক্ষণ করতে" নির্বাচন করতে দেয় না?
ইয়নোক

1

আমি মনে করি পাসওয়ার্ড-সুরক্ষিত এসএসএইচ কী স্থায়ীভাবে সংরক্ষণ করার ক্ষেত্রে সমস্যা।

দয়া করে নিম্নলিখিত সংস্থানগুলি দেখুন:


আমি যেতে যেতে মন্তব্য করব। প্রথম লিঙ্কটি সহ আমি `আইডেন্টিটি ফাইল। / .Ssh / id_rsa` যুক্ত করেছি ~/.ssh/configতবে এটি ঠিক করে নি।
ইয়োনোক

তৃতীয় লিঙ্কটি বেসিক সেটআপ দেখায় যা আমি ইতিমধ্যে যা করেছি তার চেয়ে বেশি এগিয়ে যায় বলে মনে হয় না। ধন্যবাদ যদিও.
ইয়নোক

-1

এটি আপনার .bash_ প্রোফাইলে যুক্ত করুন

if [ -n "$SSH_AUTH_SOCK" \
    -a "${SSH_AUTH_SOCK::13}" = "/tmp/keyring-" \
    -a ! -L "$SSH_AUTH_SOCK" ]
then
    OLD_AUTH_SOCK="$SSH_AUTH_SOCK"
    eval `ssh-agent`
    mv "$OLD_AUTH_SOCK" "$OLD_AUTH_SOCK"~
    ln -sfn "$SSH_AUTH_SOCK" "$OLD_AUTH_SOCK"
    SSH_AUTH_SOCK="$OLD_AUTH_SOCK"
fi

ধন্যবাদ মার্ক। এই সঙ্গে, $SSH_AUTH_SOCKএকটি মান আছে /tmp/ssh-QCndYkdq2025/agent.2025। আমি কিছু অনুপস্থিত করছি? $git pullএখনও এসএসএইচ পাসফ্রেজ প্রম্পট নিয়ে আসে।
ইয়নোক

সার্ভারে আপনার .ssh / अधिकृत_keys ফাইলে আপনার অনুমতিগুলি পরীক্ষা করুন। এটি 0600 হওয়া উচিত
মার্ক কোহেন

সার্ভারে? গিটহাব হ'ল বাহ্যিক সার্ভার এবং আমার এসএসএইচ কীটি সেখানে রেকর্ড করা আছে। এটি কি কোনও স্থানীয় সমস্যা নয়?
ইয়নোক

দুঃখিত, আপনি গিথুব ব্যবহার করছেন তা বুঝতে পারেন নি। হ্যাঁ, সেই হোস্টের উপর আপনার কোনও নিয়ন্ত্রণ নেই। আপনি নিজের এসএসএল-এজেন্টে একাধিক কী যুক্ত করতে পারেন এবং লোকালহোস্টে স্যাশিংয়ের পরীক্ষা করতে পারেন যাতে আপনি সঠিকভাবে লেখেন। এছাড়াও, আপনি ssh -vvv ব্যবহারকারীর @ হোস্ট চেষ্টা করে দেখতে পাচ্ছেন কি হচ্ছে।
মার্ক কোহেন

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