সঠিক টিটিটি শুরু করার জন্য কীভাবে প্যান্ট্রি-অভিশাপগুলি পাবেন?


13

আমি gpg-agentপিজিপি এবং এসএসএইচ উভয় পরিচয় পরিচালনার জন্য ব্যবহার করি । এজেন্টটি এই জাতীয় স্ক্রিপ্ট দিয়ে শুরু করা হয়

gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env"

export GPG_TTY="$(tty)"

if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
    eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)"
else
    source "$gpg_agent_env" 2> /dev/null
fi

যা আমি যখনই ইন্টারেক্টিভ শেলটি চালাই তখন তা উত্সাহিত হয়। এই সেটআপটি দিয়ে সবকিছু ঠিকঠাক কাজ করে তবে একটি সমস্যা আছে। আসুন আমি বলি:

  1. একটি টার্মিনাল খুলুন (পটভূমিতে এজেন্ট প্রবর্তন) এবং কাজ শুরু করুন
  2. কিছুক্ষণ পরে একটি দ্বিতীয় টার্মিনাল খুলুন
  3. এমন একটি ক্রিয়া করুন যার জন্য দ্বিতীয় টার্মিনালে একটি পাসফ্রেজ প্রবেশ করানো দরকার

এই মুহুর্তে একটি পাসফ্রেজ প্রেরণা gpg-agentশুরু করবে pinentry-cursesতবে এটি প্রথম টার্মিনালে এটি করবে যা ফলাফলটি পুনরায় চালু করার বা পেন্টিস্ট্রি বন্ধ করার কোনও উপায় ছাড়াই চলমান (সাধারণত কোনও পাঠ্য সম্পাদক) এর মিশ্রিত ফলাফলের সাথে মিশে যায় (এটি 100% সিপিইউ ব্যবহার শুরু করে) এবং আমি এটি হত্যা করতে হবে)।

আমি অবশ্যই এখানে কিছু ভুল করছি। কেউ কি এই অভিজ্ঞতা আছে?

হালনাগাদ:

আমি মূর্ত আউট এই শুধুমাত্র একটি প্রম্পট একটি SSH- কি, এটি দেখতে এরকম আনলক করতে ঘটে এই , যখন PGP কী-জন্য অনুরোধ জানানো সবসময় সঠিক (অর্থাত বর্তমান) TTY খোলা।


আপনি কি আপনার লগইন শেল থেকে এজেন্টটি শুরু করার চেষ্টা করেছেন, যাতে আপনার কেবল একটি চালানো থাকে?
জেসনওয়ারিয়ান

@ জেসনওয়ারিয়ান আমি সবেমাত্র চেষ্টা করেছি: লিনাক্স ভার্চুয়াল টার্মিনালগুলির জন্য এটি একই জিনিস (অ্যাজেটি)। টার্মিনাল দিয়ে প্রশ্নে আমি বোঝাতে চেয়েছিলাম একটি টার্মিনাল এমুলেটর উইন্ডো।
Rnhmjoj

1
এটিই ছিল export GPG_TTY="$(tty)"আমার জন্য এটি স্থির করে
নাইসন্জা

উত্তর:


11

GPG-এজেন্ট man পৃষ্ঠা বিকল্প অধীনে ব্যাখ্যা --enable-ssh-supportযে SSH এজেন্ট প্রোটোকল তাই এটি অক্ষমতা মূল টার্মিনাল এটা শুরু হয়েছিল ব্যবহার করে, এজেন্টকে TTY নাম প্রদান করতে সক্ষম নয়। SSH কমান্ড করে একটি প্রয়োজন চালানোর আগে একটি নতুন টার্মিনালে আপনাকে পাসফ্রেজ টাইপ করতে হবে

gpg-connect-agent updatestartuptty /bye

নতুন টার্মিনালে এজেন্টের দৃষ্টিভঙ্গি আপডেট করতে কোন টিটিটি বা প্রদর্শন ব্যবহার করতে হবে।


1
এই উত্তরটি আমাকে এই উপলব্ধিটি সম্পূর্ণরূপে কমাতে সাহায্য করেছে: এর জন্য দায়ী ব্যক্তিরা gpg2কমান্ড-লাইন কেন্দ্রিক কর্মপ্রবাহ / জীবনযাত্রার পছন্দ কী তা সম্পর্কে ধারণা রাখে না। একরকম যাদের মৌলিক ধারণা গুই জানালা সীমানা মধ্যে এএ টিপিক্যাল কম্পিউটার ব্যবহারকারীর অভিজ্ঞতা শুরু হয় এবং প্রান্ত পেয়েছিলাম সিদ্ধান্ত নিতে যে প্রভাব একটি টুল যা পূর্বে কম্যান্ড-লাইন আরামে ব্যবহারযোগ্য ছিল।
mtraceur

2
@ এমট্রেসুর এটি সত্যই নয়, এটি এখানে দোষের জন্য এসএসএল-এজেন্ট: আসলে জিপিজি 2 একটি পিজিপি কী আনলক করার সময় ডান টিটি প্রম্পট প্রদর্শন করবে। এটি ssh- এজেন্টের জন্য দায়ী যারা সম্ভবত কখনও আলাদা টিটিটিতে স্যুইচিংয়ের কথা ভাবেনি।
Rnhmjoj

2
@ আরহনমোজোজ এসএসএইচ ছেলেরা কি এমন কোনও টিটিওয়াই-স্যুইচিং ইউজকেসকে সমর্থন করবে যা ইউনিক্স / লিনাক্স ইতিহাসের বেশিরভাগ জন্য কোনও কমান্ড-লাইন সরঞ্জাম চায় না? আপনি কী জানেন যে কীভাবে কার্যপ্রবাহের কোন অংশটি আদেশ দ্বারা পরিচালিত হয়েছিল এবং কোন এজেন্ট দ্বারা পরিচালিত হয়েছিল তার ঠিক কীভাবে নকশা চিন্তার প্রক্রিয়া এবং সিদ্ধান্তগুলি হয়েছিল? আপনি যদি হন তবে সম্ভবত আপনি আমাকে কিছু মিস করছি তা দেখতে আমাকে সাহায্য করতে পারেন, কারণ এজেন্টটির "স্যুইচ" করার জন্য টিটিওয়াইসের কীভাবে প্রয়োজন দেখা দিতে পারে তা সম্পর্কে আমি কেবল একটি পরিষ্কার পথ দেখতে পাচ্ছি না, যদি না আর্কিটেকচারটি বিবেচনা না করে সিদ্ধান্ত নেওয়া হয়। সাধারণ কমান্ড-লাইন ব্যবহার এবং কর্মপ্রবাহ।
mtraceur

1
@ আরনেবাবেনহৌরিহাইড পার্থক্যটি হ'ল gpgভুল টার্মিনালে কখনও পাসফ্রেজের জন্য জিজ্ঞাসা করতে পারে না, তবে gpg2সহজেই পারে। gpgকমান্ড সবসময় পাসফ্রেজ টার্মিনাল এ আপনাকে জিজ্ঞাসা করতে চান থেকে কমান্ড মৃত্যুদন্ড কার্যকর কারণ আসলে পাসফ্রেজ তৈরি করা থেকে করা হয়েছিল যে প্রক্রিয়া গাছ। তবে gpg2এমন কোডিং করা হয়েছে যে এটি এটি নিশ্চিত করতে পারে না, কারণ এটি পাসফ্রেজের জন্য অনুরোধ করার জন্য পৃথক দীর্ঘ-চলমান এজেন্ট প্রক্রিয়া জিজ্ঞাসা করতে হবে, এবং সেই এজেন্টটি সম্ভবত অন্য টার্মিনালে শুরু হয়েছিল have gpg2এবং এজেন্ট করতে পারে, কিন্তু ছিল না, চারপাশে কাজ করার কোডিং।
mtraceur

1
@ আরনেবাবেনহৌরিহাইড আপনি যদি এসএসএইচ এজেন্ট এবং জিপিজি 2 এর মধ্যে পার্থক্য সম্পর্কে জিজ্ঞাসা না করেন? কারণ যদি তাই হয় তবে পার্থক্যটি হ'ল এসএসএইচকে অন্য টুলিংয়ের এই বিকৃতিটি কখনই প্রবণতার সাথে নির্দিষ্ট করে তার এজেন্টটিকে ব্যাকগ্রাউন্ডে টার্মিনালগুলি স্যুইচ করতে বলা হয়নি (যতদূর আমি জানি - এবং যদি এটি হয় তবে এটির জন্যও আমার একই সমালোচনা আছে) )। gpg2মানুষ কে কিভাবে লিনাক্স / ইউনিক্স কাজ করে CLI-প্রাসঙ্গিক দিক grok না এবং কি অবাধ সমন্বয় রচনার জন্য একটি ইন্টারফেস এবং সাধনী দ্বারা প্রয়োগকরণ ভাল করে তোলে একটি ভাল ধারনা না থাকে দ্বারা বাস্তবায়িত নকশা শুধুমাত্র জ্ঞান করে তোলে।
mtraceur

5

অনুযায়ী মূল প্রজেক্টের বাগ OpenSSH বিরুদ্ধে সঠিক এই ভাবে আপনার নিচের টি যোগ করা হয় ~/.ssh/config:

Match host * exec "gpg-connect-agent UPDATESTARTUPTTY /bye"

এটি এখনও পর্যন্ত আমার পক্ষে নিখুঁতভাবে কাজ করেছে।


1
এই কাজটি করার জন্য GPG_TTYঅবশ্যই সেট করে রাখতে হবে Note $(tty)
পিটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.