প্রতিবার যখন আমি বিটবকেটে যাব তখন পাসফ্রেজ জিজ্ঞাসা করা কীভাবে এড়ানো যায়


217

আমি এই গাইডের সাহায্যে আমার এসএস স্টাফ সেট আপ করেছি এবং এটি ভাল কাজ করত (আমি hg pushপাসফ্রেজের জন্য জিজ্ঞাসা না করেই চলতে পারি )। তখনও এবং এখনকার মধ্যে কী ঘটতে পারে তা বিবেচনা করে আমি এখনও একই হোম ডিরেক্টরি ব্যবহার করছি।

$ cat .hg/hgrc 
[paths]
default = ssh://hg@bitbucket.org/tshepang/bloog

$ hg push
Enter passphrase for key '/home/wena/.ssh/id_rsa': 
pushing to ssh://hg@bitbucket.org/tshepang/bloog
searching for changes
...

উত্তর:


337

আপনার একটি ssh এজেন্ট ব্যবহার করা প্রয়োজন। সংক্ষিপ্ত উত্তর: চেষ্টা করুন

$ ssh-add

ঠেলাঠেলি আগে। জিজ্ঞাসা করা হলে আপনার পাসফ্রেজ সরবরাহ করুন।

আপনি যদি ইতিমধ্যে কোনও ssh এজেন্ট পরিচালনা না করে থাকেন তবে নীচের বার্তাটি পাবেন:

Could not open a connection to your authentication agent.

এই পরিস্থিতিতে, আপনি একটি শুরু করতে পারেন এবং এভাবে আপনার পরিবেশ সেট আপ করতে পারেন

eval $(ssh-agent)

তারপরে ssh-addআদেশটি পুনরাবৃত্তি করুন ।

এটা তোলে কটাক্ষপাত গ্রহণ মূল্য SSH এজেন্ট র manpage


2
evalআপনি শুধু টাইপ করতে পারে এর বিন্দু কি ssh-agent?
জেমস ম্যাকমাহন

4
এটি এমন কয়েকটি আদেশ প্রদর্শন করে যা আপনাকে এটি ব্যবহার করার অনুমতি দেয় এবং আপনার জন্য সেগুলি কার্যকর করে না; evalউত্তেজনা না।
tshepang

মূল প্রশ্নের সাথে সম্পর্কিত নয় তবে আপনি যদি গিটহাব, বিটবকেট ইত্যাদিতে এই সমস্যাগুলি রাখেন তবে নিশ্চিত করুন যে আপনি গিট / এসএসএল ইউআরএল ব্যবহার করছেন, HTTP নয়, যা ব্যবহারকারীর নাম + পাসওয়ার্ড জিজ্ঞাসা করবে।
সজেকনোলজি

এবং যদি আপনার ডিফল্ট কী না থাকে, বা ssh-add /path/to/key
বহুগুণ

46

এটির সমাধানের উপায় হ'ল ssh-agentএবং ssh-add:

$ exec ssh-agent bash
$ ssh-add
Enter passphrase for ~/.ssh/id_rsa: 

এর পরে বর্তমান সেশনের জন্য পাসফ্রেজ সংরক্ষণ করা হবে। এবং আবার জিজ্ঞাসা করা হবে না।


7
বেশিরভাগ লোকেরা তাদের পাসের বাক্যাংশগুলি মোটেও বুগ করতে চান না।
connexo

26

আমি ssh কী পরিচালনার জন্য কীচেইন ব্যবহার করি । এটি ডেবিয়ান এবং সম্ভবত উবুন্টুতেও উপলব্ধ

apt-get install keychain

এখানে ডেবিয়ান কীচেন প্যাকেজ পৃষ্ঠা রয়েছে । আপনি দেখতে পাচ্ছেন যে প্রকল্পটি খুব সক্রিয় নয়, তবে আমার পক্ষে কাজ করে। আমি এখানে অন্য উত্তরে এ সম্পর্কে কিছুটা মন্তব্য করেছি


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

@ নাথানবাসনে আপনি কি বলছেন যে প্রতিবার আপনি টার্মিনাল খোলার সময় কীচেইন ব্যবহার করে আপনার এসএসএইচ পাসওয়ার্ড প্রবেশ করার দরকার নেই? আপনি কিভাবে এটি কনফিগার করবেন? কারণ কীচেইন প্রতিবার টার্মিনালটি খোলার পরে পাসওয়ার্ড জিজ্ঞাসা করে, বুট করার পরে প্রথমবার এটি খোলার পরেও তবুও। আমি প্রতিবার পাসফ্রেজ প্রবেশ করতে চাই না।
m4l490n

@ m4l490n না, আপনি কীচেইন ব্যবহার করছেন, প্রতিবার টার্মিনাল খোলার সময় আপনার ssh কী পাসওয়ার্ড প্রবেশ করার দরকার নেই। তবে বুট করার পরে আপনাকে এটি প্রবেশ করতে হবে। পাসফ্রেজটি ডিস্কে সংরক্ষিত হয়নি - এটি নিরাপত্তাহীন হবে।
ফাহিম মিঠা

আমার জন্য, প্রতিটি সময় লগ ইন করার সময় এটি জিজ্ঞাসা করে (আমার কাছে একটি গিটার সংগ্রহস্থল + এসএসএস কী রয়েছে একটি রিমোট সার্ভারে এবং প্রতিবার আমি "গিট টান" করি আমার পাসফ্রেজে প্রবেশ করতে হবে)
মার্টিন থোমা

@ মার্টিন থোমা আপনি .ssh সঠিকভাবে কনফিগার করেছেন তা পরীক্ষা করে দেখুন। বিশেষত, আপনার শেলটি সঠিকভাবে কনফিগার করা আছে? যদি এটি এখনও আপনার জন্য কাজ করে না এবং আপনি এটি নির্ধারণ করতে না পারেন তবে আপনি একটি প্রশ্ন জিজ্ঞাসা করতে পারেন।
ফাহিম মিঠা

13

নিম্নলিখিত ~ / .ssh / কনফিগারেশন ফাইলটি তৈরি করুন (বা সম্পাদনা করুন):

Host *
    UseKeychain yes
    AddKeysToAgent yes
    IdentityFile ~/.ssh/id_rsa

কিন্তু আমি যে সেবার জন্য কি একটি ভিন্ন যুগল ব্যবহার করছি ...
connexo

@ কনেক্সেক্স আপনি আপনার স্বতন্ত্র হোস্টের নামের সাথে ওয়াইল্ডকার্ডের নক্ষত্র এবং আপনার সম্পর্কিত ব্যক্তিগত কী
নেস-ইই

1
আমার IgnoreUnknown AddKeysToAgent,UseKeychainঠিক উপরে যুক্ত করা দরকার UseKeychain yes
বিবেচ্য অনুপাত

1
আমি এই ত্রুটিটি পাচ্ছি: "খারাপ কনফিগারেশন বিকল্প:" ইউজকিচেইন হ্যাঁ "লাইনে" ইউকেকিচেন "।
m4l490n

@ m4l490n: দেখে মনে হচ্ছে যে UseKeychainবিকল্পটি ওপেনএসএসএইচ 7.1 পি 2 (2016-02-28) এ যুক্ত হয়েছিল। আপনার আগের সংস্করণ থাকতে পারে। openssh.com/txt/release-7.2
চুয়েস্ট

6

সুবিধার জন্য, সর্বোত্তম পদ্ধতিটি জেএমডিটি এবং ফাহিমের উত্তরগুলির সংমিশ্রণ ।

ব্যবহার ssh-agentএকা এর মানে হল যে নতুন ইনস্ট্যান্স ssh-agentচাহিদা আপনি খুলতে প্রতিটি নতুন টার্মিনাল জন্য তৈরি করা হয়। keychainযখন আরম্ভ করা হবে তখন ব্যক্তিগত কী (গুলি) এর জন্য পাসফ্রেজ জিজ্ঞাসা করবে এবং এটি সংরক্ষণ করবে। এইভাবে আপনার ব্যক্তিগত কীটি পাসওয়ার্ড সুরক্ষিত তবে আপনাকে বার বার আপনার পাসওয়ার্ড প্রবেশ করতে হবে না।

আর্চ উইকি থেকে Keychain আরম্ভের বিশেষ পরামর্শ দেওয়া হচ্ছে /etc/profile.d/যেমন অথবা আপনার শেল প্রোফাইল, .bash_profileবা .bashrc। এটির কোনও অসুবিধা আছে যে আপনি কোনও টার্মিনাল খোলার সাথে সাথে এটি আপনার কীচেইনকে অন্তর্নিহিত করে।

আরও নমনীয় পন্থা keychainএকটি নির্দিষ্ট tmuxসেশনের সাথে একত্রিত করা হয় । সুতরাং, এতে .bash_profile:

tsess=$(tmux ls 2>&1)

if [[ "${tsess%%:*}" = "secured" ]] && 
   [[ -f $HOME/.keychain/$HOSTNAME-sh ]]; then
    # start keychain
    /usr/bin/keychain -Q -q --nogui ~/.ssh/id_rsa
    . $HOME/.keychain/$HOSTNAME-sh
fi

... এবং তারপরে এটি tmuxপ্রয়োজন হিসাবে সুরক্ষিত সেশনটি শুরু করার ক্ষেত্রে কেবল (কী-বাইন্ড থেকে চালু করা):

#!/bin/bash
PID=$(pgrep tmux)
new="tmux -f $HOME/.tmux/conf new -s secured"
old="tmux attach -t secured -d"

if [[ -z "$SSH_AUTH_SOCK" ]]; then
    eval `ssh-agent`
    trap "kill $SSH_AGENT_PID" 0
fi

if [[ -z "$PID" ]]; then
    urxvtc -title "SSH" -e sh -c "${new}"
else
    urxvtc -title "SSH" -e sh -c "${old}"
fi

ssh-add

এখন, আপনি যখন নির্দিষ্ট tmuxসেশনটি শুরু করেন তখন আপনার কীচেইনটি কেবল একবার শুরু করা হবে। যতক্ষণ এই অধিবেশনটি স্থায়ী থাকে, আপনি সেই sshকীগুলি অ্যাক্সেস করতে এবং আপনার দূরবর্তী সংগ্রহস্থলগুলিতে চাপ দিতে সক্ষম হবেন ।


আমি কীভাবে এটি একটি দূরবর্তী মেশিনে কাজ করতে পারি? আমি script এসএসএইচ_সিএলআইএনটি পরীক্ষা করতে দ্বিতীয় স্ক্রিপ্টটি সংশোধন করেছি এবং এটি উপস্থিত থাকলে urxvtc চালায় না, শুধু tmux। এটি কাজ করে তবে সমস্যাটি হ'ল .বাশ_প্রযুক্তি অংশ। আমি যখন বাক্সে প্রথম লগইন করি তখন এটিতে "সার্ভার পাওয়া যায় নি: সংযোগ প্রত্যাখ্যান করা" যা "tmux ls" এর আউটপুট। তারপরে, আমি যখন দ্বিতীয় স্ক্রিপ্টটি কার্যকর করি তখন tmux হয় একটি নতুন সেশন শুরু করে বা বিদ্যমান একটিতে সংযুক্ত করে, তবে কোনও কীচেন প্রম্পট নেই pt তারপরে, আমি যখন সেশনটি থেকে প্রস্থান করব, কীচেন প্রম্পটটি সেখানে অপেক্ষা করছে।
jonamo

আমি সেশন না থাকলে নীরব tmux আউটপুট উত্তর আপডেট করেছি।
জেসনওয়ারিয়ান

আপনাকে ধন্যবাদ, তবে এটি এখনও কীচেন দিয়ে সমস্যাটি সমাধান করেনি। tmux নতুন সেশন তৈরি করে তবে সরাসরি কোনও ফাঁকা প্রম্পটে যায় straight আমি যখন tmux সেশন থেকে প্রস্থান করি কেবল তখনই আমি আমার পাসফ্রেজ জিজ্ঞাসা করে কীচেন প্রম্পটটি দেখতে পাচ্ছি।
jonamo

আমার ধারণা, আমার কীচেইন বলা বন্ধ করা উচিত, যেহেতু কীচেইন কেবল .বাশ_প্রফাইলে চালানো হয়। ইস্যুটি ssh- অ্যাড চালানো থেকে। যদিও, আমি টিএমএক্স সেশন তৈরি করার পরে যদি ম্যানুয়ালি ssh-add চালাই তবে এটি কার্যকর হয়।
jonamo

1
দ্বিতীয় স্ক্রিপ্টটি এড়িয়ে যান এবং কেবল আপনার সুরক্ষিত tmux সেশনটি শুরু করুন .profile- এইভাবে আপনি লগইন করার সাথে সাথে কীগুলির প্রম্পটটি পাবেন।
জেসনওয়ারিয়ান

0

আপনি ব্যবহার করতে পারেন sshpass:

$ sudo apt-get install sshpass
$ sshpass -p 'password' ssh username@server

sshpass -p yourpassphraseআপনার সাধারণ sshকমান্ড যুক্ত করার আগে আপনাকে কেবল যুক্ত করতে হবে ।


2
এটি সত্যিই বোকা ধারণা মত শোনাচ্ছে। এটি কি আপনার শেল ইতিহাসের পাসওয়ার্ডটি পরিষ্কার লেখায় প্রদর্শিত হবে না?
connexo

ঠিক যেমন, তবে আপনার পাসওয়ার্ড দিয়েও আপনার সেশনটি সুরক্ষিত করার কথা নয়?
বেলকা

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